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-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
2018-3-2线性表相关推荐
- 数据结构与算法 | 线性表 —— 链表
原文链接:wangwei.one/posts/java-- 链表 定义 逻辑结构上一个挨一个的数据,在实际存储时,并没有像顺序表那样也相互紧挨着.恰恰相反,数据随机分布在内存中的各个位置,这种存储结构 ...
- 线性表ArrayList和LinkedList源码详解。
List 描述 线性表抽象接口,所有线性表应该在实现这个接口的基础上进行操作. 接口 package list;/*** Description: 线性表的接口,使用泛型保证类型** @ClassNa ...
- 王道计算机考研 数据结构 课后编程习题代码(绪论、线性表)
第二章.线性表 2.2.3 1. 题意 :从顺序表中删除具有最小值的元素(假设唯一)并由函数返回被删函数的值,空出的位置由最后一个元素填补,若顺序表为空,则显示出错信息并退出运行. 思路 :搜索整个顺 ...
- 【数据结构与算法基础】线性表
写在前面 挺早之前看的数据结构和算法了,但是最近刷LeetCode上题目的时候发现还不是很熟练(都忘光了....),于是狠心再来一遍.边整理边刷题,用的教材是北大裘宗燕的<数据结构与算法pyth ...
- 数据结构一线性表 (顺序表、单链表、双链表)
版权声明:本文为openXu原创文章[openXu的博客],未经博主允许不得以任何形式转载 文章目录 1.线性表及其逻辑结构 1.1 线性表的定义 1.2 线性表的抽象数据类型描述 2.线性表的顺序存 ...
- 抽象数据类型线性表的定义与实现
最近刚刚上完数据结构的第一章,好久没有写线性表了,正好借着老师的作业温习一下,主程序实现的就是简单的list有序合并.不多比比,直接上代码 第一部分 de.hpp文件 // // main.cpp / ...
- 数据结构与算法——线性结构——线性表及其表示
-"一,线性结构 1.顺序储存结构直接表示 多项式. 1).使用数组来表示多项式.(用数组下标来表示指数,值来表示系数) 可以表示成: 2).使用结构数组来表示.(把系数和指数看成一个二元组 ...
- 数据结构-线性表的顺序结构
1 #include "stdio.h" 2 #include "stdlib.h" 3 4 typedef int ElemType; //线性表存储基本类型 ...
- 数据结构和算法:(3)3.2线性表的链式存储结构
线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素也就是说你这个可以放在A地点,这个可以放在E地点,A地点和E地点中间可以隔开一个C地点和D地点,这样是允许的),这组存储单元可以存在 ...
- 数据结构和算法:(3)3.1线性表的顺序存储结构
-----------------------1.线性表基础操作------------------------ 线性表:(List)由零个或多个数据元素组成的有限序列. 首先他是一个序列,元素之间是 ...
最新文章
- NGUI-制作位图字体以及图文混排
- 分布式系统架构与云原生—阿里云《云原生架构白皮书》导读
- 团队开发 个人工作总结01
- android 绘制分割线,Android EditText在其drawable和它的文本之间绘制一个分隔线
- CentOS 6 安装Hadoop 2.6 (三)问题收集
- shell脚本(五)——函数的格式、传参、变量、递归、函数库
- ArrayList 除重
- [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了
- 32和64位jvm_我应该使用32位还是64位JVM?
- 1894. 找到需要补充粉笔的学生编号
- 剑指offer 11.旋转数组的最小数字
- django中使用第三方包实现定时任务
- c语言对字符串逆序,【C语言】 字符串逆序
- 将byte数组转换成十进制字符串输出_outputStream与InputStream使用只能传输字节byte...
- 右键文件夹导致资源管理器关闭的处理办法
- python读取excel(xlrd)
- 服务器在线测速系统源码_亲测可用
- mobileconfig使用发布者证书动态签名
- wap pc html,PCWAP手机PC网站信息管理系统 v1.4.3
- 一个操作系统的实现(8)进程间通信