目录
首先定义一个一个单链表
typedef struct LNode{
int data; //数据域
struct LNode *next; //指针域
}LNode, * LinkList;
用到的typedef关键字的作用 是为一种数据类型声明一个别名;
尾插法正向建立单链表
尾插法就是一直在链表的末尾追加节点、在追加的节点中写入数据。那么实现这个操作,我们就需要有一个工作节点s来存储数据,还需有一个工作指针用来指向末尾的节点,并且在每插入一个新的节点之后,我们就需要将工作指针指向“新的”末尾的节点,这样才能保证我们一直是在末尾插入数据,好了话不多说我们具体来看实现代码
LinkList List_Tailinsert(LinkList &L){
L = (LinkList)malloc(sizeof(LinkList)); //生成一个头结点
//头结点指针域置空
L->next = NULL;
//怎么办,就是让最后面的节点的指针域指向一个新的节点 新的节点中存放着我们想要插入的数据 这个过程利用循环来反复实现
//工作指针p,用来指向新节点,并且永远指向最后一个节点
LNode* p=L; //初始化指向头结点
int x;
scanf("%d",&x);
while( x!=100 ){
//新建一个节点s 当做临时节点 来存放要插入的数据
LNode* s = (LNode*)malloc(sizeof(LNode));
s->data = x; //在新节点中写入数据
p->next = s; //s变为尾结点
p = s; //p指向s
scanf("%d",&x); //输入数据
}
p->next = NULL; //尾结点的指针域置空
return L; //返回L
}
新人入坑,请各位大佬指教