题目:
- 编写函数,创建一个带头结点的单链表(数据自拟);
- 编写函数,在单链表的指定位置插入一个元素;
- 编写函数,在单链表的指定位置删除一个元素;
- 编写函数,将两个有序链表合并成一个新的有序链表;
解答:
首先做一个备注:L->next有两层含义,可以表示L的后继节点指针,又可表示L的指针域,(补充:链表每个节点分为数据域和指针域,(单链表的指针域只有后继指针域,双链表的指针域分为前趋指针域和后继指针域))。第一,当它在等号右边时(即X = L->next形式)一般是指将X指针指向头节点L的后一个节点也就是链表的第一个数据节点;第二,当它在等号左边的时候(即L->next = X),表示将X的值当做地址,写入到L的后继指针域L->next当中,相当于头节点L的后面链接一个数据节点。
然后下面是CreateList(表的创建的图示)
#include "stdio.h" #include "stdlib.h" #include "math.h" #define OK 1 #define ERROR 0 typedef int Status; typedef int ElemType; typedef struct