DS-6-单链表的建立
单链表的建立
Step1:初始化一个单链表
Step2:每次取一个数据元素,插入到表尾/表头
尾插法建立单链表:
LinkList List_TailInsert(LinkList &L) { //正向建立单链表 int x; L = (LinkList)malloc(sizeof(LNode)); //建立头结点 LNode *s,*r = L; //r为表尾指针 scanf("%d",&x); //输入结点的值 while(x!=9999){ //输入9999表示结束 s = (LNode*)malloc(sizeof(LNode)); s->data = x; r->next = s; r = s; //r指向新的表尾结点 scanf("%d",&x); } r->next = NULL; //尾结点指针置空 return L; }
头插法建立单链表:
LinkList List_HeadInsert(LinkList &L) { //逆向建立单链表 LNode *s; int x; L = (LinkList)malloc(sizeof(LNode)); //创建头结点 L->next = NULL; //初始为空链表 scanf("%d",&x); //输入结点的值 while(x! = 9999){ //输入 9999 表示结束 s = (LNode*)malloc(sizeof(LNode)); //创建新结点 s->data = x; s->next = L->next; L->next = s; //将新结点插入表中,L为头指针 scanf("%d",&x); } return L; }
头插法、尾插法:核心就是之前写过的初始化操作、指定结点的后插操作