void union (List &La, List &Lb) tLa_len=ListLength (La); Lb_len=ListLength(Lb) for(i=l; i<=Lb_len; i++r GetElem(Lb, i e) ListInsert(La, ++La_len, e); M//union void MergeList(List La, List Lb, List &Lc) (netList(Lc) =j=1k=0; len=Listlength (La); Lb_len=Listlength (Lb) while((i<La_len)&&g<Lb_len)) GetElem (La, i, ai) GetElem (Lb,j, b); if(ai<=bjkListinsert(LC, ++k,ai); ++i; else ListInsert(LC, ++k, b]):++j:] while(k<=La_len GetElem (La, i++, ai: Listinsert(LC, ++k, ai: while<=Lb_lenk GetElem (Lb, j++, bj); ListInsert(LC, ++k, bj); 3//Merge
}//ListInsert 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_len,e); }//union 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(k<=La_len){ GetElem(La,i++,ai);ListInsert(Lc,++k,ai); } while(j<=Lb_len){ GetElem(Lb,j++,bj);ListInsert(Lc,++k,bj); } }//MergeList
3、部分*作的C语言实现,下面是程序运行的结果: -List Demo is runni name stun age score stu1100001801000 stu2100002801000 name stun age score stu1100001801000 stu2100002801000 gtn now name stun age score zmofun100001801000 bobin100002801000 stu1100001801000 List B length now is 3 Second is unionIst function Now union List a and list b stu1100001801000 1000028010 stu3100003801000 bobin100002801000 List a length now is 5 Welcometovisithttp://zmofun.hehanet! 三、总结 线性表的定义 线性表的类型定义
3、部分*作的 C 语言实现,下面是程序运行的结果: -------------------List Demo is running...---------------- First is InsertList function. name stuno age score stu1 100001 80 1000 stu2 100002 80 1000 List A length now is 2. name stuno age score stu1 100001 80 1000 stu2 100002 80 1000 stu3 100003 80 1000 List A length now is 3. name stuno age score zmofun 100001 80 1000 bobjin 100002 80 1000 stu1 100001 80 1000 List B length now is 3. Second is UnionList function. Now union List A and List B..... name stuno age score stu1 100001 80 1000 stu2 100002 80 1000 stu3 100003 80 1000 zmofun 100001 80 1000 bobjin 100002 80 1000 List A length now is 5. Welcome to visit http://zmofun.heha.net ! 三、总结 线性表的定义 线性表的类型定义
数据结构教程第六课线性表的顺序表示和实现
数据结构教程 第六课 线性表的顺序表示和实现
本课主题线性表的顺序表示和实现 教学目的:掌握线性表的顺序表示和实现方法 教学重点:线性表的顺序表示和实现方法 教学难点:线性表的顺序存储的实现方法 授课内铧: 1、存储结构 逻辑结构 数据结构”定义中的”关系指数据间的逻辑关系,故也称数据结构 为逻辑结构 存储结构「顺序存储结构数据结构在计算机中的表示称为物理结构。又称存储结构 链式存储结构 2、线性表的类型定义 线性表的顺序表示 用一组地址连续的存储单元依次存储线性表的数据元素。C语言中的数组即采用顺序存储方式。 200000000o0oooo001 1 2000:00030000000 Jooooo oo 1o 2010001 2000:0007 00 0000 looo ooo 2000 o ooooooo o 1 20001010011000110 2000:0013000000000000011 7 2000:0015 0000 loooooooo1ooo 20000d0001001 2000:1001 2000:1003 假设线性表的每个元素需占用/个存储单元,并以所占的第一个单元的存储地址作为数据元素的存储位置。则存在如下关系
本课主题: 线性表的顺序表示和实现 教学目的: 掌握线性表的顺序表示和实现方法 教学重点: 线性表的顺序表示和实现方法 教学难点: 线性表的顺序存储的实现方法 授课内容: 复习 1、存储结构 逻辑结构 “数据结构”定义中的“关系”指数据间的逻辑关系,故也称数据结构 为逻辑结构。 存储结构 顺序存储结构 数据结构在计算机中的表示称为物理结构。又称存储结构。 链式存储结构 2、线性表的类型定义 一、线性表的顺序表示 用一组地址连续的存储单元依次存储线性表的数据元素。C 语言中的数组即采用顺序存储方式。 2000:0001 2000:0003 2000:0005 2000:0007 2000:0009 2000:0011 2000:0013 2000:0015 2000:0017 ... 2000:1001 2000:1003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 a[9] 1 2 3 4 5 6 7 8 9 假设线性表的每个元素需占用 l 个存储单元,并以所占的第一个单元的存储地址作为数据元素的存储位置。则存在如下关系:
ai ai)+/ loc(di=Loc(a1)+()*/ 式中LC(a1是线性表的第一个数据元素的存储位置,通常称做线性表的起始位置或基地址。常用b表示。 线性表的这种机内表示称做线性表的顺序存储结构或顺序映象 称顺序存储结构的线性表为顺序表。顺序表的特点是以元素在计算机内物理位置相邻来表示线性表中数据元素之间的逻辑关系。 顺序存储结构的线性表类C语言表示: 线性表的动态分配顺序存储结构 #define LIST INIT sIzE 100 #tdefine LIsTINCREment 10 typedef struct t ElemType*elem/存储空间基址 int length;/当前长度 int listsize;//当前分配的存储容量以一数据元素存储长度为单位 ISqL 三、顺序存储结构的线性表*作及C语言实现: 顺序表的插入与删除*作: 序号数据元素序号数据元素 序号数据元素序号数据元素 528<255 23456 28 42
LOC(ai+1)=LOC(ai)+l LOC(ai)=LOC(a1)+(i-1)*l 式中 LOC(a1)是线性表的第一个数据元素的存储位置,通常称做线性表的起始位置或基地址。常用 b 表示。 线性表的这种机内表示称做线性表的顺序存储结构或顺序映象。 称顺序存储结构的线性表为顺序表。顺序表的特点是以元素在计算机内物理位置相邻来表示线性表中数据元素之间的逻辑关系。 二、顺序存储结构的线性表类 C 语言表示: 线性表的动态分配顺序存储结构 #define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 typedef struct{ ElemType *elem; //存储空间基址 int length; //当前长度 int listsize; //当前分配的存储容量以一数据元素存储长度为单位 }SqList; 三、顺序存储结构的线性表*作及 C 语言实现: 顺序表的插入与删除*作: 序号 数据元素 序号 数据元素 序号 数据元素 序号 数据元素 1 2 3 4 5 6 7 8 9 12 13 21 24 28 30 42 77 <-25 1 2 3 4 5 6 7 8 9 12 13 21 24 25 28 30 42 77 1 2 3 4 5 6 7 8 9 12 13 21 24 28 30 42 77 ->24 1 2 3 4 5 6 7 8 9 12 13 21 28 30 42 77