单链表的头插法与尾插法
来源:互联网 发布:炒菜致癌知乎 编辑:程序博客网 时间:2024/06/07 05:43
学习完线性表的知识已经很长时间了,今天有空重新复习整理一下。线性表有两种表示方法,顺序表示和链式表示。
顺序表示即就是数组,其特点为:
优:(1)用数组存储数据元素,操作方法简单,容易实现
(2)无须为表示结点间的逻辑关系而增加额外的存储开销
(3)存储密度高
(4)顺序表可按元素位序随机存取结点
缺:(1)做插入、删除操作时,需大量移动数据元素,效率非常低
(2)要占用连续的存储空间,存储分配只能预先进行。分配过大,会导致空间浪费;分配过小将会造成数据溢出。
链式表示即就是链表,其特点为与顺序表相反
链表不用事先估计存储空间的大小,但其存储密度较低(存储密度:指一个结点中数据元素所占的存储单元数和整个结点所占的存储单元之比,顺序表的存储密度为1,链式存储密度小于1)
链表的插入有两种方式:头插法和尾插法
头插法:在头结点(为了操作方便,在单链表的第一个结点之前附加一个结点,称为头结点。头结点的数据域可以存储数据标题、表长等信息,也可以不存储任何信息,其指针域存储第一个结点的首地址)H之后插入数据,其特点是读入的数据顺序与线性表的逻辑顺序正好相反
//尾插法建立链表void CreateListR(LinkList &L, int n){ // 给链表插入n个数据int i;LinkList p = NULL, q;L = (LinkList)malloc(sizeof(LNode)); // 生成头结点L->next = NULL;q = L;cout << "请输入" << n << "个数据:";for (i = 1; i <= n; i++){p = (LinkList)malloc(sizeof(LNode));//每次新生成的节点cin >> p->data;//数据q->next = p;q = q->next;}p->next = NULL;//最后节点,指向NULL}
//头插法建立链表void CreatelistL(LinkList &L, int n){LinkList p,q;L=(LinkList)malloc(sizeof(LNode));L->next=NULL;cout << "请输入" << n << "个数据:";for(int i=0;i<n;i++){q=(LinkList)malloc(sizeof(LNode));cin>>q->data;q->next=L->next;L->next=q;}L->next=NULL;}
关注微信公众号:编程美学,每周学点编程知识,让自己从技术小白变为技术大牛
0 0
- 单链表的头插法与尾插法
- 单链表的头插法与尾插法
- 单链表的头插法与尾插法
- 单链表的头插法与尾插法
- 单链表的头插法与尾插法
- 单链表的头插法与尾插法
- 单链表的建立与删除 (使用头插法和尾插法实现)
- 用Python实现单链表的头插法与尾插法
- 单链表创建:头插法与尾插法
- 头插法(逆序)和尾插法(顺序)实现单链表的创建与排序
- “头插法”与“尾插法”建立线性链表的异同
- Java实现链表结构的头插法与尾插法
- 单链表的创建 头插法 Java数据结构与算法
- 编写头插法建立单链表的过程与体会
- [数据结构]头插法与尾插法
- 单链表的建立与输出
- 单链表的插入与删除
- 单链表的插入与删除
- Spring 面试问题
- 解决cocoapods diff: /../Podfile.lock: No such file or directory
- RK3288 _ Android 5.1_Settings定制
- ID3决策树算法原理及C++实现
- 利用start with connect by 查询子节点和父节点数据显示为树状形
- 单链表的头插法与尾插法
- PHP5.3 与 5.5废弃与过期函数整理汇总
- matlab产生正定矩阵
- 数组分页显示
- Struts2
- TF卡用FAT32还是NTFS?
- 几种嵌入式实时操作系统简介
- mklichee操作步骤
- 学习SpringMVC——从HelloWorld开始