ypedef struct LNode{ int data; struct LNode *next; }*LinkList; 按要求编写以下各函数模块: (1)构造出一个空的单链表L; (2)将值33,24,231,3,11依次链入L中; (3)求链表L的长度; (4)将值为10的结点插入到L中的第3个位置,作为链表L中的第三个结点存在; (5)在L首端插入值为25 的结点; (6)删除L中第4个位置的结点; (7)查找L中第5个位置结点的值; (8)遍历并输出L中的所有结点; (9)编写main()函数模块,依次调用以上各模块,按要求输出结果。 文件编程题:C语言
时间: 2023-02-06 21:55:49 浏览: 243
以下是题目要求的各个函数的示例实现:
(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)
{
int i = 0;
LinkList p = L; // 从头结点开始遍历
while (p->next != NULL && i < pos - 1) // 找到第pos-1个结点
{
p = p->next;
i++;
}
LinkList q = (LinkList)malloc(sizeof(LNode)); // 分配内存
q->data = data; // 赋值
q->next = p->next; // 插入
p->next = q;
}
(5)在L首端插入值为25 的结点:
void
阅读全文