线性表之单链表

线性表的链式存储结构

链式存储定义:为了表示每个数据元素与其直接后继元素之间的逻辑关系,每个元素除了存储本身的信息外,还需要存储指示其直接后继的信息。

链式存储逻辑结构:n个结点链接成一个链式线性表的结构叫做链表当每个结点中只包含一个指针域时,叫做单链表。

链表的基本概念

表头结点:链表中的第一个结点,包含指向第一个数据元素的指针以及链表自身的一些信息。

数据结点:链表中代表数据元素的结点,包含指向下一个数据元素的指针和数据元素的信息。

尾结点:链表中的最后一个数据结点,其下一元素指针为空,表示无后继。

单链表示例

在C语言中可以用结构体来定义链表中的指针域。

链表中的表头结点也可以用结构体实现。

 



获取第pos个元素操作
1.
判断线性表是否合法;
2.
判断位置是否合法;
3.由表头开始通过next指针移动pos次后,当前元素的next指针即指向要获取的元素。


插入元素到位置pos的算法
1.
判断线性表是否合法;
2.
判断插入位置是否合法;
3.由表头开始通过next指针移动pos次后,当前元素的next指针即指向要插入的位置;
4.将新元素插入;
5.线性表长度加1;



删除第pos个元素的算法
1.
判断线性表是否合法;
2.
判断插入位置是否合法;
3.获取第pos个元素;
4.将第pos个元素从链表中删除;
5.线性表长度减1。



链式存储结构优点:

1.无需一次性定制链表的容量;

2.插入和删除操作无需移动数据元素。

链式存储结构缺点:

1.数据元素必须保存后继元素的位置信息;

2.获取指定数据的元素操作需要顺序访问之前的元素;

3.单链表的实现严重依赖指针;

4.数据元素中必须包含一个额外的指针域;

5.没有指针的程序设计语言无法实现。

详细代码下载地址:http://download.csdn.net/download/u014754841/10235754

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值