栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

数据结构——线性表1

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据结构——线性表1

数据结构——线性表

文章目录
  • 数据结构——线性表
  • 前言
  • 一、线性表
  • 二、顺序表
  • 三、链表


前言
 本节将会学习到线性表的基础知识,以及顺序表和链表的理论知识,具体代码实现以及练习题将在后续博客中学习到。

一、线性表

1.预备知识:
(1)线性表是数据结构的逻辑结构。
(2)线性结构:一个数据集合中的数据元素的有序集(次序)。

        ①基本路线:序偶 <前驱,后继>
        ②基本要求:只能存放同类型的数据元素。
        ③特征: i>有且只有一个元素无前驱,称为首元节点(第一个元素);
               ii>有且只有一个元素无后继,称为微元素(最后元素);
              iii>除以上两种,其余元素向前都只有一个前驱,向后只有一个后继。

2.定义:满足线性结构的数据集合。
3.类型定义:
(1)图例法
(2)二元组法
4.抽象类型定义(ADT):

二、顺序表

1.定义

逻辑结构:线性表
物理存储结构:存储结构——用连续的地址用来存储元素
①满足线性表的特征
②顺序表要用顺序地址映像——地址可计算,可随机访问

2.顺序存储地址可计算
a

32584769
01234578

①a≡&a[0]
②ADD(a[i])=ADD(a[0])+1*sizeof(ElemSN)
「在C语言中不用计算字节数,只需要下标(偏移量)(&a[i] = a+i)」

三、链表

1.定义

逻辑结构:线性表
物理存储结构:链式存储影像——用零散的空间换时间效率
(1)顺序存储——单位连续——地址可计算——CPU
(2)链式存储特点:
①利用内存零散空间——单元不连续
②单元地址必须存储
(3)结果:链表并没有节省空间,只是利用零散空间。

2.术语
(1)节点:存储每个数据元素的存储单元

(2)定义:

typedef struct Node{
	int data;
	struct Node *next;
}ElemSN,*List;

类型名:struct Node,ElemS N,*List;
struct Node *p;
ElemSN *p;
*List l;
动态单元分配:(ElemSN *)malloc(sizeof(ElemSN));
节点释放:free(p);
(3)节点成员引用:

struct Node S1;
ElemSN S2;
struct Node *p;
S1.data=3;
S2.data=2;
p->data;
p->next;


(4)链表图例

(5)头指针head:用来指向首元节点

特点:
①他的值首元节点的地址
②head没有data和next


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/920439.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号