3. (其它) 逆位序输入线性表的n个数据元素,编写建立带头结点的单链表的算法
时间: 2024-03-08 19:49:39 浏览: 154
显示输出算法带头结点——循环链表-严蔚敏数据结构课件02:线性表
假设线性表中有n个数据元素,用数组a存储这些元素,且逆序输入,即a[0]为最后一个元素,a[n-1]为第一个元素。下面是建立带头结点的单链表的算法:
```
void CreateList(LinkList &L, ElemType a[], int n)
{
L = (LinkList)malloc(sizeof(LNode)); // 创建头结点
L->next = NULL; // 初始为空链表
for (int i = n - 1; i >= 0; i--) {
LinkList p = (LinkList)malloc(sizeof(LNode)); // 创建新结点
p->data = a[i];
p->next = L->next; // 将新结点插入到链表头部
L->next = p;
}
}
```
其中,LinkList是指向结点的指针,LNode是结点类型,ElemType是数据元素类型。该算法使用了头插法建立链表,时间复杂度为O(n)。
阅读全文