链表建立一个新节点
发布网友
发布时间:2022-04-23 01:27
我来回答
共2个回答
热心网友
时间:2022-04-11 15:17
链表在创建的时候必须初始化也就是(head=0)
在建立新节点是初试指针要移向新节点的头部(p1->data=a)
你是自学C数据结构?
给你个程序吧!
建表:
#define DATATYPE char
typedef struct node
{
DATATYPE data;
struct node *next;
}LINKLIST;
建立新节点:
main()
{
LINKLIST *head=NULL,*t;
char ch;
while((ch=getchar())!=`$`)
{
t=malloc(sizeof(LINKLIST));//强制类型转换
t->data=ch;
t->next=head;
head=t;
}
}
热心网友
时间:2022-04-11 16:35
while(p2->next&&p2->data
data)//循环结束的条件是什么啊?遍历到哪儿结束?到表尾还是到p前面的那个节点?
{
p1=p2;
p2=p2->next;
}
这一段循环两个条件,也就是说退出这个循环有两种情况p2->next为空,说明已经到达表尾了,只能把要插入的节点插到表尾了,所执行的插入操作也就是下面if语句这一段:
p2->next=p;
p->next=0
另外一种情况就是循环中p2->data>p-data,就执行插入操作,把节点p插入到p2之前
按照这个函数来看所要插入的链表应该是一个从小到大排列的顺序链表
if(p2->data
next!=null)
这样可能楼主看得更清楚一点