数据结构-第2章线性表精要
教学目的与要求
熟练掌握顺序表的定义、向量 (或一维数组)的存储、插入、删除元素等运算。
掌握链式表的建立、插入、删除元素等运算。
熟悉链表的连接,多项式的加、减运算等操作。
熟悉循环链、双向链的操作。
重点与难点
重点:概念、基本运算实现方法。
难点:应用。 ;第二章 线性表;线性表(Linear List) :由n(n≧0)个数据元素(结点)a1,a2, …an组成的有限序列。其中数据元素的个数n定义为表的长度。当n=0时称为空表,常常将非空的线性表(n0)记作:
(a1,a2,…an)
这里的数据元素ai(1≦i≦n)只是一个抽象的符号,其具体含义在不同的情况下可以不同。
例1、26个英文字母组成的字母表
(A,B,C、…、Z)
例2、某校从1978年到1983年各种型号的计算机拥有量的变化情况。
(6,17,28,50,92,188)
;例3、学生健康情况登记表如下:; 从以上例子可看出线性表的逻辑特征是:
在非空的线性表,有且仅有一个开始结点a1,它没有直接前趋,而仅有一个直接后继a2;
有且仅有一个终端结点an,它没有直接后继,而仅有一个直接前趋a n-1;
其余的内部结点ai(2≦i≦n-1)都有且仅有一个直接前趋a i-1和一个直接后继a i+1。
线性表是一种典型的线性结构。
数据的运算是定义在逻辑结构上的,而运算的具体实现则是在存储结构上进行的。
抽象数据类型的定义为:P19;例2-1 利用两个线性表LA和LB分别表示两个集合A和B,现要求一个新的集合A=A∪B。
算法2.1
void union(List La,List Lb) {
La-len=listlength(La); Lb-len=listlength(Lb);
for(I=1;I=lb-len;I++) {
getelem(lb,I,e);
if(!locateelem(la,e,equal))
listinsert(la,++la-en,e);}
};例2-2 巳知线性表LA和线性表LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC,且LC中的元素仍按值非递减有序排列。
算法2.2
void mergelist(list la,list lb,list lc)
initlist(lc);
I=j=1;k=0;
la-len=listlength(la); lb-len=listlength(lb);
while((I=la-len)(j=lb-len)){; getelem(la,I,ai);getelem(lb,j,bj);
if(ai=bj){listinsert(lc,++k,ai);++I;}
else{listinsert(lc,++k,bj);++j;}
}
while(I=la-len){
getelem((la,I++,ai);listinsert(lc,++k,ai); }
while(j=lb-len){
getelem((lb,j++,bj);listinsert(lc,++k,bi); }
}
;2.2.1 顺序表
把线性表的结点按逻辑顺序依次存放在一组地址连续的存储单元里。用这种方法存储的线性表简称顺序表。
假设线性表的每个元素需占用l个存储单元,并以所占的第一个单元的存储地址作为数据元素的存储位置。则线性表中第I+1个数据元素的存储位置LOC( a i+1)和第i个数据元素的存储位置LOC(a I )之间满足下列关系:
LOC(a i+1)=LOC(a i)+l
线性表的第i个数据元素ai的存储位置为:
LOC(ai)=LOC(a1)+(I-1)*l;由于C语言中的一维数组也是采用顺序存储表示,故可以用数组类型来描述顺序表。又因为除了用数组来存储线性表的元素之外,顺序表还应该用一个变量来表示线性表的长度属性,所以我们用结构类型来定义顺序表类型。
# define ListSize 100
typedef int DataType;
typedef struc{
您可能关注的文档
- 数据库课程设计报告及部分代码精要.doc
- 数据挖掘2453精要.ppt
- 数据库第4章精要.pptx
- 数据的查询和显示精要.ppt
- 数据的分析全章测试题含答案精要.doc
- 数据的输入与编辑精要.docx
- 数据的采集与音频信号的频谱分析 课程设计精要.doc
- 数据挖掘与统计决策--学科概述 聚类分析 因子分析精要.ppt
- 数据结构 实验一 图精要.doc
- 数据结构 第七章 图精要.pptx
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
原创力文档

文档评论(0)