c语言链表详解(C语言链表函数,求解析)

本文目录
C语言链表函数,求解析
答案:
①p0
②p1
③NULL
解析:
p0指向要插入的结点,p1指向要和p0结点的info进行比较的结点,如果找到应该插入的位置,p0会被插入在p1之前,如果没找到,会被插入在p1之后。
第一个if检查链表是否为空,如果为空,直接将p0变为首结点就完成了插入。
while循环的作用是寻找插入位置,因为链表要求降序,所以用p1从首结点开始找,要找到第一个info小于等于p0结点的结点。每次循环结束后,p2将指向p1之前的结点,为后面的插入作准备。
第二个if检查之前的while循环是否找到这样的结点。如果没找到,说明前面从while循环出来时p1指向的是尾结点,这时要将p0插入到链表末尾,所以将p0插入到p1之后。p0的后面没有结点,所以它的link指向NULL,所以第③问填NULL。如果找到了,那么进入第三个if。
第三个if检查p1是否刚好为首结点,如果为首结点,说明前的while循环根本没进去直接就出来了,这时p1之前没有结点,p2还没有指向任何结点,所以还不能使用p2。由于要将p0插入到p1之前,所以必须将p0变为首结点,所以第①问填p0。
如果p1不是首结点,进行的就是常规的插入操作了,将p0插入到p1之前,p2之后,所以第②问填p1。注意这里不能填p2-》link,因为这里不在第三个if的else里面,第三个if出来以后也要经过这一步,而之前说了,如果进入了第三个if,p2是不能使用的。
C语言链表概念
简单说来,就是通过指针指向,把两个结构体连接起来。比如定义下面这个结构体
struct node
{
int data;
struct node *next;
}
可以看到结构体里面定义了一个自身类型的指针,通过让指针指向另外一个结构体,我们就能通过结构体里面的next变量访问下个结构体里面的内容,而通过下一个结构体,同样可以通过下一个结构体的next指向,找到下一个这种类型的结构体,这样就形成了所谓的链表。
C语言 链表 如何理解
满意答案飞狙仔16级2011-01-18别听那人忽悠你,想学数据结构并不需要链表的基础。当然,链表也很重要,以线性表为例:链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,链表比较方便插入和删除操作。 追问: 前辈,能发个代码上来说明一下吗?书本上的我看不明白。 回答: 比如:#include #include struct link{int data;struct link *next; }; void create(struct link *h,int n){int i;struct link *k; h=(struct link *)malloc(sizeof(struct link)); h-》 next=NULL; for(i=n;i》 0;i--){k=(struct link *)malloc(sizeof(struct link));k-》data=i;k-》next=h-》next;h-》next=k;}k=h-》next;for(i=0;idata);k=k-》next;}printf(“\n“); }int main(){struct link l; system(“pause“);return 0;} 结果: 追问: 前辈,不是C++的头文件吗? 回答: 你不是说C语言的链表吗?就得自己写个数据结构。C++默认的链表类是基于STL的。建议你看一下书。 追问: 啊?我C语言都没有学好,就去看C++? 回答: 呵呵,不是这个意思。刚才那个程序是C的。C++的STL中有自带的链表类,建议你以后学习。把握链表,核心是结点,结点核心就是数据+指针。多看几个例子,比如严蔚敏的数据结构,就写的很好。

更多文章:
turtles歌曲(哪位大神有turtles(乌龟组合)的<谢谢>的歌词中文翻译 感激不尽)
2026年10月11日 10:00
金山铁路22号线(请问现在轨道交通22号线金山铁路是个什么情况据说9月28日就开通了啊~~~)
2026年10月11日 09:10
repercussions(都是余波,repercussions和aftermath有什么区别啊)
2026年10月11日 09:00
dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)
2026年10月11日 08:50
易语言网页api接口怎么调用(易语言,怎么读取网页json的api)
2026年10月11日 08:00
majority of(the majority of 和 a majority of的区别以及用法例句)
2026年10月11日 07:40





