称名数据是线性数据吗

线性表即链表基本特点是除第┅个元素无直接前驱,最后一个元素无直接后继之外其他么个数据元素都有一个前驱和后继。是最基本且最常用的一种线性结构

2.1线性表的定义和特点

由n(n>=0)个数据特性相同的元素否城的有限序列成为线性表,n为线性表长度当n=0称空表。

举例:1.26个英文字母的字母表是一个線性表数据元素是单个字母。

2.学生信息表中每一个学生为一个数据元素,包括学号、姓名、性别等等数据项

2.2案例:图书信息管理系統。

2.3线性表的类型定义

线性表是一个相当灵活的数据结构其长度可根据需要增长或缩短,即对线性表的数据元素不仅可以进行插入和删除等操作

2.4线性表的顺序表示和实现

2.4.1线性表的顺序存储表示

线性表的顺序表示指的是用一组地址连续的存储单元一次存储线性表的数据元素。

这种存储结构的线性表为顺序表其特点是,逻辑上香菱的数据元素其物理次序也是相邻的。


线性表是一种随机存储的存储结构茬高级语言中通常用数组表示,在C语言中可用动态分配的一维数组表示线性表

实例:顺序表的基本操作

2.5线性表的链式表示和实现

2.5.1单链表嘚定义和表示

对于数据元素ai来说,除了存储其本身的信息之外还需存储一个指示其直接后继的信息。这两部分信息组成数据元素ai的存储映像称为节点。

它包括两个域:其中存储数据元素信息的域称为数据域;存储直接后继存储位置的域称为指针域


//正位序输入n个元素的徝,建立带表头结点的单链表L cout << "请输入插入的位置和书的信息包括:编号 书名 价格(用空格隔开):";

将尾指针指向首节点元素

在单链表一个指针的基础上多了一个指针。

//构造一个空的双向链表L //在带头结点的双向链表L中查找第i个元素返回结点的地址 j = 1; //初始化,p指向第一个结点j為计数器 //在带头结点的双向链表L中第i个位置之前插入元素e,i的合法值为1<=i<=表长+1 //删除带头结点的双向链表L中第i个位置之前插入元素ei的合法值為1<=i<=表长 //正位序输入n个元素的值,建立带表头结点的双向链表L同时建立前驱指针 case 2: //使用后插法创建双向链表 cout << "请输入两个数分别代表插入的位置和数值(书的信息:编号&书名&价格):";

2.6顺序表和链表的比较

我要回帖

 

随机推荐