单链表的定义、表示及操作(一)
一、链式存储结构的特点
用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。因此,每个结点都必须有指针域。
二、单链表
1.定义:每一个结点只含有一个指针域的链式结构称为单链表。
2.单链表结点的类型定义:
typedef struct Lnode{int data; //数据域struct Lnode *next; //指针域
}Lnode,*LinkList;
3、关于带头节点的单链表及不带头节点的单链表
(1)带头节点的单链表为空时:L->next==NULL;
(2)不带头节点的单链表为空时:L=NULL;
三、单链表的基本操作
1、单链表中获取一个元素
(1)找第i个结点
GetElem(LinkList L,int i,int e)
{int j;LinkList p;p=L->next;j=1;//p指向第一个结点,j为计数器i=3; //假设需要找第3个结点while(p&&j<i) //当p指针不为空并且还未到达第i个结点{p=p->next; //p指向下一个结点j++; //计数器加一}if(!p||j>i)return ERROR;//第i个元素不存在else e=p->data;return OK;
}
(2)找值为x的元素
GetElem(LinkList L,int x,int e)
{while(p&&p->data!=x){p=p_>next;}if(!p)return ERROR;//不存在值为x的结点else e=p->data;return OK;
}
单链表的定义、表示及操作(一)相关推荐
- (王道408考研数据结构)第二章线性表-第三节1:单链表的定义及其操作(插入和删除,建立之尾插和头插)
文章目录 一:单链表相关 (1)单链表的定义 (2)头指针与头结点 二:单链表代码描述 三:单链表的初始化 四:单链表的插入 五:单链表的删除 六:单链表查找 (1)按位查找 (2)按值查找 七:单链 ...
- 链表的特点,单链表的定义、存储结构,单链表的基本操作(判断链表是否为空、销毁链表、清空链表、求链表表长、查找、插入、删除,建立单链表)
目录 一.链表(链式存储结构)的特点 二.单链表的定义和表示 1.带头结点的单链表 2.单链表的存储结构 三.单链表基本操作的实现 1.单链表的初始化(带头结点的单链表) 2.补充单链表的几个常用简单 ...
- 单链表——单链表的定义及基本操作(初始化、头插法尾插法建表、查找、插入、删除、判空等)
文章目录 单链表的定义 单链表上的操作 初始化 建立单链表 头插法建立单链表 尾插法建立单链表 遍历单链表 求单链表的长度 查找操作 按值查找 按位查找 插入操作 删除操作 判空操作 完整代码及实例 ...
- 数据结构课本学习 --单链表类定义
单链表的类定义: 复合类: class List;class LinkNode{ //结点类定义 friend class List; //List类所有成员可以使用LinkNode的私有成员,反过来 ...
- 算法精解_C语言 链表_单链表(接口定义+类型实现)
链表可以说是一种最为基础的数据结构.链表由一组元素以一种特定的顺序组合或链接而成,在维护数据的集合时很有用.这一点同我们常用的数组很相似.然而,链表在很多情况下比数组更有优势.特别是在执行插入和删除操 ...
- 创建一个非循环单链表并对其进行操作
首先我们定义一个节点结构体,他的一部分是存储数据,一部分存储指针指向下一个节点. 下面是代码: typedef struct Node {int data; //数据域struct Node * pN ...
- 数据结构单链表的创建以及简单操作
在数据结构中: 目录 一.数据节点类型结构体封装 二.创建单链表 1.创建链表 2.头部插入 3.遍历链表 4.尾部插入 5.释放链表 链表可以解决顺序表无法开辟连续空间的问题,大大提高了内存的利用率 ...
- 单链表的定义、特点、结构及其一些基本操作
一,基本运算 1,单链表,双链表的定义: 设计链式存储结构时,每个逻辑节点存储单独存储. 2,单链表的基本结构: 头节点在前,首节点在后. 3,顺序表与链表间存储密度的差异: 顺序表的存储密度为1, ...
- c语言单链表的查找,单链表的查找、建立操作(C语言)
一.单链表的查找(带头结点) (一)按位查找 GetElem(L,i):按位查找操作.获取表L中第i个位置的元素的值. //按位查找,返回第i个元素(带头结点) LNode * GetElem(Lin ...
最新文章
- 程序员能成为设计师吗
- 自动化C语言第一次月考试卷,145班《计算机组成与工作原理》第一次月考试卷...
- swift 注意事项 (十六) —— 可选链
- find 和 DOM遍历孰快孰慢~
- C#流程控制语句--跳转语句(break,continue,goto,return,)
- 想写Python爬虫?看这5个教程就行了!
- CRM Order confirmation form布局
- 字符串处理 —— 模拟与暴力
- 轮盘赌算法的java实现算例
- spring之@value设置默认值
- Android开发工具集合
- 全国最新省市县联动mysql_全国省市县区三级联动数据库mysql3500条数据-html资源网...
- iOS 设置导航栏全透明
- 浏览器无法加载本地文件
- Fengshui(双向bfs看风水···)
- 关于物联网进入元宇宙时代的基础与发展思考
- [CTF从0到1学习] 一、CTF 概述
- vMotion及Storage vMotion配置
- 天下事,有所激有所逼而成者居其半
- 使用scp复制传输windows文件到linux