数据结构单链表之创建链表(尾插法)
2017-12-19 21:12
375 查看
接上一篇内容,这次使用尾插法来创建单链表:
1.同样创建链表成员结构体:
2.然后下面就是通过尾插法创建单链表的程序,这里面稍稍要去理解的是通过一个指针来标记新的头节点的方法:
3.同样编写显示函数测试代码:
测试结果如下所示,可以看到是程序正序输出数据的,说明用的是尾插法:
1.同样创建链表成员结构体:
struct listnode { int value; listnode* next; };
2.然后下面就是通过尾插法创建单链表的程序,这里面稍稍要去理解的是通过一个指针来标记新的头节点的方法:
listnode CreatlistTail(listnode* L, int a[], int len) { listnode* r = L; //此句的意义是存储拥有头节点的listnode的地址,并且在下面循环时每当新插入一个新 成员时都会将其移动到新的成员上使其成为新的头节点,毕竟是尾插法嘛 for (int i = 0; i < len; i++) { listnode* trans = new listnode; //创建想要插入的新成员结构 trans->value = 0; trans->next = NULL; //以上三句初始化均为新的listnode链表成员 trans->value = a[i]; //创建一个待插入的指针 r->next = trans; //将头节点指向新成员,因为是尾插法,这一步显得十分简单 r = trans; //将最新的头节点存储到地址r上,上面说过了 } return *L; }
3.同样编写显示函数测试代码:
void showlist(listnode* L) { listnode* list_show; int i = 1; list_show = L; if (list_show == NULL) { cout << "此列表为空!" << endl; return; } else { list_show = list_show->next; } do { cout << "链表第" << i << "个数据是" << list_show->value << endl; list_show = list_show->next; i++; } while (list_show != NULL); }
测试结果如下所示,可以看到是程序正序输出数据的,说明用的是尾插法:
相关文章推荐
- 数据结构学习(二)——单链表的操作之头插法和尾插法创建链表
- 数据结构学习(二)——单链表的操作之头插法和尾插法创建链表
- 数据结构学习(二)——单链表的操作之头插法和尾插法创建链表
- 数据结构:头插法、尾插法创建单链表,求链表长度、查找、插入、删除、合并
- 数据结构(第二天)单链表的基本操作,创建单链表,头插法,尾插法,删除节点,查询节点
- 数据结构单链表创建(头插法,尾插法)java/c/c++
- 数据结构研究--尾插法创建带头结点的单链表
- 【数据结构-链表】头插法和尾插法建立单链表
- 数据结构单链表之创建链表(头插法)
- 单链表-用尾插法创建单链表
- 数据结构—链表—单链表应用-增序排列节点
- 创建链表-头插法和尾插法
- [C++]数据结构:链表二叉树的创建与四种遍历方式
- 数据结构 -- 单链表创建之传地址创建新的链表
- 数据结构——单链表(链表操作算法集合)
- 关于单链表的各种函数的C++源代码,创建单链表、求表长、插入、删除等等
- 数据结构-链表创建,删除,插入,反转,连接
- 数据结构 线性表 建立单链表 尾插法
- 头插法尾插法创建单链表和遍历单链表
- 【郝斌数据结构自学笔记】24_链表创建和链表遍历算法的演示