数据结构之线性表(二)(复习)

@TOC引言今天继续复习线性表,到了较难的链表部分。正文线性表的链式存储结构链表首先来介绍线性表的链式存储——链表线性表中每个结点有唯一的前驱节点和后继结点设计链式存储结构是,每个结点单独存储,为了表示逻辑关系,增加了指针域链表分为单链表和双链表我们主要学习单链表双链表与单链表是相通的单链表学好了 双链表也自然不难在设计单链表我们往往增加一个头结点它的好处是:第一个结点的操作和表中其他结点的操作相一致,无需进行特殊处理无论链表是否为空,都有一个头结点,因此空表和非空表的处
摘要由CSDN通过智能技术生成

@TOC

引言

今天继续复习线性表,到了较难的链表部分。

正文

线性表的链式存储结构

链表

首先来介绍线性表的链式存储——链表
线性表中每个结点有唯一的前驱节点和后继结点
设计链式存储结构是,每个结点单独存储,为了表示逻辑关系,增加了指针域
链表分为单链表和双链表在这里插入图片描述
我们主要学习单链表
双链表与单链表是相通的
单链表学好了 双链表也自然不难
在这里插入图片描述
在设计单链表我们往往增加一个头结点
它的好处是:

  • 第一个结点的操作和表中其他结点的操作相一致,无需进行特殊处理
  • 无论链表是否为空,都有一个头结点,因此空表和非空表的处理也就统一了

单链表

到此开始介绍单链表
首先是单链表中结点类型LinkNode的定义

typedef struct LNode
{
   
	ElemType data;
	struct LNode *next;
}LinkNode;

这里的ElemType可以是char或int等类型
根据实际所需而定

由此可得单链表的特点:

  • 当访问过一个结点后,只能接着访问它的后继结点,而无法访问它的前驱结点。

然后大致介绍一下单链表的插入和删除结点
由于使用的是链表 其过程与顺序表有很大不同
在这里插入图片描述
在这里插入图片描述
了解之后 开始单链表的基本操作

建表CreateList()

建立单链表有两种方法,分别是头插法和尾插法

头插法的建表图解如下
在这里插入图片描述
代码实现:

void CreateListF(LinkNode *&L, ElemType a[], int n)
{
   
	LinkNode *s;
	int i;
	L=(LinkNode *)malloc(sizeof(LinkNode));
	L->next=NULL;
	for(i=0; i<n; i++)
	{
   
		s=(LinkNode *)malloc(sizeof(LinkNode));
		s->data=a[i];
		s->data=L->next;
		L->next=s
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值