2018-3-2线性表

线性表详解

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-1ai的直接前驱元素,ai+1ai的直接后继元素。所以线性表元素的个数n(n>=0)定义为线性表的长度,当n=0时,称为空表。

强调几个关键的地方:
1)有序,就像按学号排对一样大家有固定的标签可以用来甄别那个孩子丢了
2)若元素存在多个,则第一个元素无前驱,而最后一个元素无后继,其他元素都有且只有一个前驱和后继。
3有限,事实上无论计算机发展到多强大,它所处理的元素都是有限的。

2.  抽象()

定义:抽取出事物具有的普遍性的本质

抽出关键的去除无关紧要的

3.  数据类型

浮点型,整型,字符型

产生原因:需求

比如,大家都需要住房子,也都希望房子越大越好。
但显然:没有多少钱的话考虑房子是没啥意义
于是商品房就出现了各种各样的房型,有别墅的,有错层的,有单间的..

满足了大家的不同需求。

计算机内存有限,所以按需分配,以免浪费
抽象数据类型(Abstract Data TypeADT),定义:

一个数学模型及定义在该模型上的一组操作。抽象数据类型的定义仅取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现无关。

抽象数据类型,可以自己根据原子类型(不能再分的类型)或者是非原子数据类型有程序员自己定义

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

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值