2018-3-2
来源小甲鱼论坛:
★第八讲 线性表3 ★,数据结构与算法,技术交流区,鱼C论坛 - Poweredby Discuz!
http://bbs.fishc.com/forum.php?mod=viewthread&tid=96295&ctid=1041
1. 线性表(List)的定义:
由零个或多个数据元素组成的有限序列。
数学语言来进行定义:
若将线性表记为(a1,…,ai-1,ai,ai+1,…an),则表中ai-1领先于ai,ai领先于ai+1,称ai-1是ai的直接前驱元素,ai+1是ai的直接后继元素。所以线性表元素的个数n(n>=0)定义为线性表的长度,当n=0时,称为空表。
强调几个关键的地方:
(1)有序,就像按学号排对一样大家有固定的标签可以用来甄别那个孩子丢了
(2)若元素存在多个,则第一个元素无前驱,而最后一个元素无后继,其他元素都有且只有一个前驱和后继。
(3)有限,事实上无论计算机发展到多强大,它所处理的元素都是有限的。
2. 抽象()
定义:抽取出事物具有的普遍性的本质
抽出关键的去除无关紧要的
3. 数据类型
浮点型,整型,字符型
产生原因:需求
比如,大家都需要住房子,也都希望房子越大越好。
但显然:没有多少钱的话考虑房子是没啥意义
于是商品房就出现了各种各样的房型,有别墅的,有错层的,有单间的..
满足了大家的不同需求。
计算机内存有限,所以按需分配,以免浪费
抽象数据类型(Abstract Data Type,ADT),定义:
一个数学模型及定义在该模型上的一组操作。抽象数据类型的定义仅取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现无关。
抽象数据类型,可以自己根据原子类型(不能再分的类型)或者是非原子数据类型有程序员自己定义
ADT 抽象数据类型名
Data
数据元素之间逻辑关系的定义
Operation
操作
endADT
4. 线性表的操作
InitList(*L): 初始化操作,建立一个空的线性表L。
ListEmpty(L): 判断线性表是否为空表,若线性表为空,返回true,否则返回false。
ClearList(*L): 将线性表清空。
GetElem(L,i,*e): 将线性表L中的第i个位置元素值返回给e。
LocateElem(L,e): 在线性表L中查找与给定值e相等的元素,如果查找成功,返回该元素在表中序号表示成功;否则,返回0表示失败。
ListInsert(*L,i,e): 在线性表L中第i个位置插入新元素e。
ListDelete(*L,i,*e): 删除线性表L中第i个位置元素,并用e返回其值。
ListLength(L): 返回线性表L的元素个数。
5. Python表示线性表
(1)整数类型的Union
def union(A,B):
i=0
for i in range(len(B)):
A.append(B[i])
print (A)
A=[1,2,3,54]
B=[6,7,8]
union(A,B)
(2)字符型与数字型Union
def union(A,B):
i=0
for i in range(len(B)):
A.append(B[i])
print (A)
A=[1,2]
B=['c','d']
union(A,B)
6. 顺序存储结构和链式存储结构
用一段地址连续的存储单元依次存储线性表的数据元素。
线性表(a1,a2,…,an)的顺序存储如下:
顺序存储----C中的数组Python中的列表
元素在存储的时候有自己的索引(冠名的以免走丢了的独一份的标签)
.获得元素通过各自的索引也就是下标A[0]得到第0个元素的值
Python中列表的函数
(1) 使用[] 创建列表
(2) 函数append 可以实现在列表的末尾添加单个元素
(3) 函数extend在列表末尾添加多个元素
(4) 函数insert可以实现在任意位置添加元素
(5) 对函数的使用可以通过help(函数名)实现
列表的相关函数:
来源
Python学习系列(四)(列表及其函数) - 天堂的鸽子 - 博客园
https://www.cnblogs.com/zhangbc/p/3856442.html
线性表详解
1023

被折叠的 条评论
为什么被折叠?



