以下是题目要求的各个函数的示例实现:
(1)构造出一个空的单链表L:
LinkList CreateEmptyList() { LinkList L = (LinkList)malloc(sizeof(LNode)); // 分配内存 L->next = NULL; // 初始化指针域为NULL return L; }
(2)将值33,24,231,3,11依次链入L中:
void LinkListInsert(LinkList L, int data) { LinkList p = L; // 从头结点开始遍历 while (p->next != NULL) { p = p->next; } LinkList q = (LinkList)malloc(sizeof(LNode)); // 分配内存 q->data = data; // 赋值 q->next = NULL; // 初始化指针域为NULL p->next = q; // 链接 }
(3)求链表L的长度:
int LinkListLength(LinkList L) { int length = 0; // 计数器 LinkList p = L->next; // 从第一个结点开始遍历 while (p != NULL) { length++; p = p->next; } return length; }
(4)将值为10的结点插入到L中的第3个位置,作为链表L中的第三个结点存在:
void LinkListInsertAt(LinkList L, int data, int pos) { i