逆位序输入线性表的n个数据元素,编写建立带头结点的单链表的算法
时间: 2024-03-08 17:50:50 浏览: 96
显示输出算法带头结点——循环链表-严蔚敏数据结构课件02:线性表
好的,下面是建立带头结点的单链表的算法,具体实现可以参考以下代码:
```
ListNode* createList(int n){
ListNode* head = new ListNode(0); // 创建头结点
ListNode* p = head;
for(int i = n; i > 0; i--){
int value;
cin >> value; // 逆位序输入数据元素
ListNode* node = new ListNode(value);
node->next = p->next;
p->next = node;
}
return head;
}
```
解释一下这个算法的实现过程:
1. 创建头结点,值为 0。
2. 定义一个指针 p,指向头结点。
3. 循环 n 次,每次输入一个数据元素,创建一个值为该数据元素的结点 node。
4. 将新结点 node 插入到头结点和指针 p 之间,即 node->next = p->next,p->next = node。
5. 返回头结点 head。
由于是逆位序输入数据元素,因此需要在创建新结点时将其插入到链表的头部,保证最后创建出来的链表中数据元素的顺序为输入时的顺序。
阅读全文