计算机软件基础优秀PPT.ppt
《计算机软件基础优秀PPT.ppt》由会员分享,可在线阅读,更多相关《计算机软件基础优秀PPT.ppt(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、桂林电子科技大学桂林电子科技大学GUILIN UNIVERSITY OF ELECTRONIC TECHNOLOGY计算机计算机 软件基础软件基础其次篇数据结构基础其次篇数据结构基础第八章线性表(第八章线性表(第八章线性表(第八章线性表(linear listlinear listlinear listlinear list)桂林电子科技大学桂林电子科技大学GUILIN UNIVERSITY OF ELECTRONIC TECHNOLOGY一、线性表的概念一、线性表的概念1.线性表的逻辑结构线性表的逻辑结构(1)线性表:是由)线性表:是由n(n 0)个数据节点个数据节点 a0,a1,,an-1
2、组成的组成的有限有限序列。序列。(2)线性表的逻辑结构特征:)线性表的逻辑结构特征:对于非空线性表:对于非空线性表:有且仅有一个起先节点,该节点有且仅有一个干有且仅有一个起先节点,该节点有且仅有一个干脆的后继;脆的后继;有且只有一个终结节点,该节点有且仅有一个干有且只有一个终结节点,该节点有且仅有一个干脆的前驱;脆的前驱;其余内部节点有且仅有一个干脆前驱和一个干脆其余内部节点有且仅有一个干脆前驱和一个干脆后继。后继。桂林电子科技大学桂林电子科技大学GUILIN UNIVERSITY OF ELECTRONIC TECHNOLOGY一、线性表的概念一、线性表的概念(2)线性表的逻辑结构特征:)线
3、性表的逻辑结构特征:同一个线性表中的数据节点具有相同的属性。同一个线性表中的数据节点具有相同的属性。线性表长度:线性表中数据节点的个数。线性表长度:线性表中数据节点的个数。2.线性表的存储结构线性表的存储结构(1)依次存储结构:依次表结构;)依次存储结构:依次表结构;(2)链式存储结构:链表结构;)链式存储结构:链表结构;桂林电子科技大学桂林电子科技大学GUILIN UNIVERSITY OF ELECTRONIC TECHNOLOGY二、依次表二、依次表1.依次表依次表(1)依次表:)依次表:把线性表中的数据节点按其逻辑依次依次存把线性表中的数据节点按其逻辑依次依次存放到计算机内存中的一连续
4、空间中,将这一连续放到计算机内存中的一连续空间中,将这一连续空间称为依次表。空间称为依次表。(2)依次表中数据节点地址的计算)依次表中数据节点地址的计算Loc(ai)=loc(a0)+i*d (0in-1)桂林电子科技大学桂林电子科技大学GUILIN UNIVERSITY OF ELECTRONIC TECHNOLOGY二、依次表二、依次表1.依次表依次表(3)依次表)依次表C语言描述:语言描述:struct sequenliststruct sequenlist datatype alistsize;/datatype alistsize;/表示线性表有(表示线性表有(表示线性表有(表示线性
5、表有(a0a0,a1 a1,.,an-1an-1)int length;/length int length;/length表示线性表的实际长度表示线性表的实际长度表示线性表的实际长度表示线性表的实际长度;桂林电子科技大学桂林电子科技大学GUILIN UNIVERSITY OF ELECTRONIC TECHNOLOGY二、依次表二、依次表2.依次表的基本运算依次表的基本运算查找查找struct sequenlist /*struct sequenlist /*构建构建构建构建sequenlistsequenlist型型型型*/*/datatype datalistsize;datatype
6、datalistsize;int length;int length;struct sequenlist L;/*struct sequenlist L;/*定义定义定义定义sequenlistsequenlist变量变量变量变量L*/L*/int find(struct sequenlist L,datatype x)/*int find(struct sequenlist L,datatype x)/*定义定义定义定义findfind函数函数函数函数*/*/int i=0;int i=0;while(iL.length&L.datai!=x)i+;while(iL.length&L.dat
7、ai!=x)i+;if(iL.length)return(i);/*if(iL.length)return(i);/*假如找到了,则返回数值假如找到了,则返回数值假如找到了,则返回数值假如找到了,则返回数值i*/i*/else return(0);/*else return(0);/*假如找不到,则返回数值假如找不到,则返回数值假如找不到,则返回数值假如找不到,则返回数值0*/0*/桂林电子科技大学桂林电子科技大学GUILIN UNIVERSITY OF ELECTRONIC TECHNOLOGY二、依次表二、依次表一个完整的查找程序:一个完整的查找程序:#include#include#de
8、fine listsize 50#define listsize 50struct sequenlist /*struct sequenlist /*构建构建构建构建sequenlistsequenlist型型型型*/int datalistsize;int datalistsize;int length;int length;struct sequenlist L;/*struct sequenlist L;/*定义定义定义定义sequenlistsequenlist变量变量变量变量L*/L*/int find(struct sequenlist L,int x)/*int find(str
9、uct sequenlist L,int x)/*定义定义定义定义findfind函数函数函数函数*/int i=0;int i=0;while(iL.length&L.datai!=x)while(iL.length&L.datai!=x)i+;i+;if(iL.length)return(i);if(iL.length)return(i);else return(0);else return(0);桂林电子科技大学桂林电子科技大学GUILIN UNIVERSITY OF ELECTRONIC TECHNOLOGY二、依次表二、依次表一个完整的查找程序(续):一个完整的查找程序(续):mai
10、n()main()int i,j,y;int i,j,y;struct sequenlist a;struct sequenlist a;scanf(%d,&a.length);/*scanf(%d,&a.length);/*输入实际表长输入实际表长输入实际表长输入实际表长*/scanf(%d,&j);/*scanf(%d,&j);/*输入要查找的数据输入要查找的数据输入要查找的数据输入要查找的数据*/for(i=0;ia.length;i+)for(i=0;i=listsze)printf(overflown);if(L.length=listsze)printf(overflown);el
11、se if(iL.length)printf(position is no correctn);else if(iL.length)printf(position is no correctn);elseelse for(j=L.length-1;j=i;j-)for(j=L.length-1;j=i;j-)L.dataj+1=L.dataj;L.dataj+1=L.dataj;L.datai=x;L.datai=x;L.length+;L.length+;桂林电子科技大学桂林电子科技大学GUILIN UNIVERSITY OF ELECTRONIC TECHNOLOGY二、依次表二、依次表一
12、个完整的插入运算程序一个完整的插入运算程序#include#include#define listsze 10#define listsze 10struct sequenlist /*struct sequenlist /*构建构建构建构建sequenlistsequenlist型型型型*/int datalistsze;int datalistsze;int length;int length;struct sequenlist L;struct sequenlist L;桂林电子科技大学桂林电子科技大学GUILIN UNIVERSITY OF ELECTRONIC TECHNOLOGY二
13、、依次表二、依次表一个完整的插入运算程序(续)一个完整的插入运算程序(续)void insert(struct sequenlist L,int x,int i)/*void insert(struct sequenlist L,int x,int i)/*定义定义定义定义insertinsert函数函数函数函数*/int j;int j;if(L.length=listsze)printf(overflown);if(L.length=listsze)printf(overflown);else if(iL.length)printf(position is no correctn);els
14、e if(iL.length)printf(position is no correctn);elseelse for(j=L.length-1;j=i;j-)for(j=L.length-1;j=i;j-)L.dataj+1=L.dataj;L.dataj+1=L.dataj;L.datai=x;L.datai=x;L.length+;L.length+;for(j=0;jL.length;j+)for(j=0;jL.length;j+)printf(%d,L.dataj);printf(%d,L.dataj);桂林电子科技大学桂林电子科技大学GUILIN UNIVERSITY OF ELE
15、CTRONIC TECHNOLOGY二、依次表二、依次表一个完整的插入运算程序(续)一个完整的插入运算程序(续)main()main()int i,j,y;int i,j,y;struct sequenlist a;struct sequenlist a;scanf(%d,&a.length);/*scanf(%d,&a.length);/*输入实际表长输入实际表长输入实际表长输入实际表长*/scanf(%d,&y);/*scanf(%d,&y);/*输入要插入的数据输入要插入的数据输入要插入的数据输入要插入的数据*/scanf(%d,&j);/*scanf(%d,&j);/*输入要插入数据的
16、位置输入要插入数据的位置输入要插入数据的位置输入要插入数据的位置*/for(i=0;ia.length;i+)for(i=0;ia.length;i+)scanf(%d,&a.datai);scanf(%d,&a.datai);insert(a,y,j);insert(a,y,j);桂林电子科技大学桂林电子科技大学GUILIN UNIVERSITY OF ELECTRONIC TECHNOLOGY二、依次表二、依次表依次表插入运算的结论:依次表插入运算的结论:(1)在线性表中插入一个数据节点须要移动依次表)在线性表中插入一个数据节点须要移动依次表的一半节点,即:的一半节点,即:n/2。(2)时
17、间困难度:插入运算的时间困难度与)时间困难度:插入运算的时间困难度与n有关,有关,即:即:T(n)=O(n)。桂林电子科技大学桂林电子科技大学GUILIN UNIVERSITY OF ELECTRONIC TECHNOLOGY二、依次表二、依次表3.依次表的基本运算依次表的基本运算删除删除step1:推断表是否为空?假如为空,则输出推断表是否为空?假如为空,则输出“无法删除无法删除”;否则进行其次步;否则进行其次步;step2:推断要删除的位置是否在表内?假如不在,则推断要删除的位置是否在表内?假如不在,则输出输出“位置不对位置不对”;否则进行第三步;否则进行第三步;step3:从第从第i+1
18、个节点到第个节点到第n-1个节点全部前移个节点全部前移1位(位(采采用覆盖的形式删除用覆盖的形式删除););step4:将依次表的表长减去将依次表的表长减去1;桂林电子科技大学桂林电子科技大学GUILIN UNIVERSITY OF ELECTRONIC TECHNOLOGY二、依次表二、依次表删除运算的类删除运算的类C语言算法:语言算法:void delete(struct sequenlist L ,int i)/*void delete(struct sequenlist L ,int i)/*定义定义定义定义deletedelete函数函数函数函数*/int j;int j;if(L.
19、length=0)printf(Empty list,can not delete!n);if(L.length=0)printf(Empty list,can not delete!n);else if(i=L.length)printf(position is no correctn);else if(i=L.length)printf(position is no correctn);else else for(j=i+1;jL.length;j+)for(j=i+1;jL.length;j+)L.dataj-1=L.dataj;L.dataj-1=L.dataj;L.length-;L
20、.length-;桂林电子科技大学桂林电子科技大学GUILIN UNIVERSITY OF ELECTRONIC TECHNOLOGY二、依次表二、依次表一个完整的删除运算程序一个完整的删除运算程序#include /*#include /*调用头文件调用头文件调用头文件调用头文件“stidio.h”*/stidio.h”*/#define listsze 10#define listsze 10struct sequenlist /*struct sequenlist /*构建构建构建构建sequenlistsequenlist型型型型*/int datalistsze;int datali
21、stsze;int length;int length;struct sequenlist L;/*struct sequenlist L;/*定义定义定义定义sequenlistsequenlist变量变量变量变量L*/L*/桂林电子科技大学桂林电子科技大学GUILIN UNIVERSITY OF ELECTRONIC TECHNOLOGY二、依次表二、依次表一个完整的删除运算程序(续)一个完整的删除运算程序(续)void delete(struct sequenlist L ,int i)/*void delete(struct sequenlist L ,int i)/*定义定义定义定义
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机软件 基础 优秀 PPT
限制150内