小编Mad*_*han的帖子

如何仅使用两个指针反转单链表?

我想知道是否存在一些逻辑来仅使用两个指针来反转链表.

以下用于使用三个指针(即p,q,r)反转单个链表:

struct node {
    int data;
    struct node *link;
};

void reverse() {
    struct node *p = first,
                *q = NULL,
                *r;

    while (p != NULL) {
        r = q;
        q = p;
        p = p->link;
        q->link = r;
    }
    first = q;
}
Run Code Online (Sandbox Code Playgroud)

还有其他替代方法来反转链表吗?在时间复杂度方面,逆转单链表的最佳逻辑是什么?

c algorithm linked-list data-structures singly-linked-list

109
推荐指数
4
解决办法
26万
查看次数

远指针和近指针有什么区别?

谁能告诉我C中的far指针和near指针之间的区别?

c pointers

49
推荐指数
3
解决办法
6万
查看次数

如何进行浏览器和Web服务器之间的通信?

任何人都可以解释在浏览器和Web服务器之间进行通信的方式吗?我想学习如何

  • GET,POST动词(以及其他)
  • 饼干
  • 会议
  • 查询字符串

在幕后工作.

browser protocols http

40
推荐指数
5
解决办法
10万
查看次数

在XML中使用CDATA元素是否容易受到攻击?

在XML文档中使用CDATA元素是否易受攻击?如果是这样,如果我们在XML文档中使用CDATA元素会发生什么?

xml cdata

7
推荐指数
1
解决办法
3193
查看次数

删除单链表中的循环

循环可以出现在单链表(SLL)中.
要删除列表中的循环,首先我们需要检测SLL中的循环,然后删除循环.

任何人都可以告诉如何使用伪代码删除SLL中的循环吗?
我们可以用3个指针做到吗?
有没有替代完成任务?

algorithm loops data-structures singly-linked-list

5
推荐指数
1
解决办法
2352
查看次数

C中存在冲突类型错误

对于以下C代码(用于交换两个数字),我得到swap函数的"冲突类型"错误.

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a,b;
    printf("enter the numbers to be swapped");
    scanf("%d%d",&a,&b);
    printf("before swap");
    printf("a=%d,b=%d",a,b);
    swap(&a,&b,sizeof(int));
    printf("after swap");
    printf("a=%d,b=%d",a,b);
    getch();   
}
void swap(void *p1,void *p2,int size)
{
     char buffer[size];
     memcpy(buffer,p1,size);
     memcpy(p1,p2,size);
     memcpy(p2,buffer,size);
     return(0);
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉为什么会出现错误?
那是什么解决方案?

c

0
推荐指数
1
解决办法
3万
查看次数

使用递归编码整数乘法函数(在C中)

任何人都可以告诉我如何C使用递归编写乘法函数(in )?

c recursion

-11
推荐指数
3
解决办法
1万
查看次数