在我们遇到的大多数题中,一般都是有头结点的单链表。这里我们可以把没有头结点的单链表看成我们的特殊情况,接下来,我们将从有头结点的单链表和没有头结点的单链表的定义,插入一个元素,删除一个元素等方面进行对比。

有头结点的单链表和没有头结点的单链表的定义:

typedef int ElemType;
typedef struct LNode
{ElemType data;struct LNode* next;
}LNode,*LinkList;

带头结点的单链表的按位插入

bool ListInsert(Linklist& l, int i, ElemType e)
{if (i < 1){return false;}LNode* p;int j = 0;p = L;while (p != NULL && j < i - 1){p = p->next;j++;}if (p == NULL)return false;LNode* s = (LNode*)malloc(sizeof(LNode));s->data = e;s->next = p->next;p->next = s;return true;
}

不带头结点的单链表

bool ListInsert(LinkList& l, int i, ElemType e)
{if (i < 1)return false;if(i==1){LNode* s=(LNode *)malloc(sizeof(LNode));s->data=e;s->next=L;L=s;return true;}LNode* p;int j = 1;p = L;while (p != NULL && j < i - 1){p = p->next;j++;}if (p == NULL)return false;LNode* s = (LNode*)malloc(sizeof(LNode));s->data = e;s->next = p->next;p->next = s;return true;
}

从有序插入我们都可以看出来,对于没有头结点的单链表来说,我们需要考虑当它处理的问题为第一个元素的时间,其他没有什么差别。

有头结点和没有头结点的单链表相关推荐

  1. 单链表的整表创建(头结点版)

    *****参照<大话数据结构>整理***** 一.基本要素概念明析 1.指针 指针也就是内存地址 ,指针变量是用来存放内存地址的变量(按照百度定义,进行下面的介绍) 2.结构体 结构体是C ...

  2. 带头结点单链表、不带头结点单链表(头指针单链表)

    1.头结点和头指针的区别 1.1区别: 头指针表明了链表的结点,可以唯一确定一个单链表. 头指针指向链表的第一个结点,其记录第一个存储数据的结点的地址. 头结点是点链表的第一个结点,若单链表有头结点, ...

  3. java语言实现单链表---不含头结点

    java语言实现单链表---不含头结点 一.相关概念 1.什么是线性表 2.什么是顺序表 3.什么是链表 4.单链表.双链表.循环单链表.循环双链表 5.头结点和首结点 6.常见的栈和队列与线性表的关 ...

  4. 单链表操作实现getelem_c语言实现--带头结点单链表操作

    可能是顺序表研究的细致了一点,单链表操作一下子就实现了.这里先实现带头结点的单链表操作. 大概有以下知识点. 1;结点:结点就是单链表中研究的数据元素,结点中存储数据的部分称为数据域,存储直接后继地址 ...

  5. 【C语言】数据结构C语言版 实验3 带头结点的单链表

    slnklist.h #include <stdio.h> #include <stdlib.h> /************************************* ...

  6. 【C语言】数据结构C语言版 实验2 不带头结点的单链表

    运行环境:Dev-C++ vs2013可能不能运行 首先新建一个头文件slnklist.h #include <stdio.h> #include <stdlib.h> /** ...

  7. C语言将结点s赋给表L,数据结构-单链表

    一.单链表基本定义 线性表的链式存储:线性表采用链式方式将结点链接起来的存储结构称之链表.单链表结构,分前后两个域,date数据域:存放结点的值,next指针域:存放数据元素后继的位置.附设头结点的目 ...

  8. 【数据结构】带头结点的单链表

    文章目录 一.单链表的概念 二.结构体声明: 三.函数 1.购买节点 2.释放节点 3.单链表的初始化 4.判空函数 5.获取单链表有效值个数 6.按数据查询(返回含有此数据节点的前驱) 7.按数据查 ...

  9. c语言 链表 无头结点,C++ 单链表(无头结点)

    /* 单链表(无头结点) */ #include #include #include using namespace std; struct LNode { int data; // 数据域 LNod ...

  10. 单链表(带头结点)的存储结构与基本操作(c语言)------亲测可用

    编程语言:c语言 编译环境:Dev-c++ 实现功能:实现功能:单链表(带头结点)结点结构体的定义,单链表(带头结点)初始化.求元素个数.插入元素.删除元素.取元素.打印所有元素.就地逆置.撤销的操作 ...

最新文章

  1. 如何在网站上同步查看BCH数据
  2. 在JFinal的Controller中接收json数据
  3. 警告1909。无法创建快捷方式VMware Workstation Pro.Ink。解决方法(附 VMware_workstation 12的安装方法)
  4. 提高使用比特币的匿名性
  5. c语言程序设计0039大作业答案,2019西南大学0039C语言程序设计机考大作业答案.doc...
  6. idea不识别yml配置文件,怎么办?
  7. 计算机 电工学简明教程,电工学简明教程复习要点
  8. AppDelegate 方法介绍
  9. 【报告分享】中国移动互联网2021年度大报告.pdf(附下载链接)
  10. IOS-程序员和设计师必备的20个CSS工具
  11. redis应用之——获取若干最新注册用户
  12. cad中填充的剖面线不能被修剪_在模具行业中CAD二维制图的相关绘图规范
  13. Python让繁琐工作自动化——chapter18 GUI控制键盘与鼠标
  14. iOS 中可能用到的数学公式(绝对值、平方、取整、正余弦)
  15. 祝贺swm8023刷HDU-Steps登顶+突破新Section,14.2不是传说中的高级计算几何,而是数学~~...
  16. 计算机文件拒绝被访问,文件访问被拒绝_电脑文件访问被拒绝,需要权限
  17. quarz定时任务 spring整合quartz
  18. 【定位设备】蓝牙信标接近距离的计算方式及其部署原则
  19. shell-xargs
  20. Mac Big Sur提示xxx文件已损坏

热门文章

  1. 计算机ping使用的端口,如何用ping来测试端口(port)?
  2. Lectures on the hyperreals
  3. C++内存分布之菱形继承(无虚函数)
  4. 【云原生 | 从零开始学Docker】六、如何写出自己的镜像——Docker file
  5. word应用第3节-用py把word转txt批量转化
  6. Linux网络适配器(Bridged(桥接模式),NAT(网络地址转换模式))设置IP连接外网,互拼
  7. 单点登录系统(SSO)详细设计说明书
  8. 从远程桌面连接切换回主屏幕的快捷键
  9. 他俩都曾是技术大牛,创业这些年来有怎样的苦与乐?
  10. 28335的双PWM中断调试CCS实例