数据结构(一)数据结构算法与顺序表
一、数据结构与顺序表
+理解数据结构与算法
+掌握顺序表的操作
数据结构 是指相互之间有一定联系的数据元素的集合,元素之间的相互联系 称为 逻辑结构。
数据元素之间的逻辑结构分为:
集合 线性 树形 网状结构
无序 一条线 Win资源管理器 拓扑
数据结构的研究:
1、数据的逻辑结构
逻辑关系的描述,独立于计算机的。
分为:线性(线性表、栈、队列)和非线性(树形结构、网状结构)
2、数据的存储结构
分为:顺序存储、链式存储、散列表(哈希)、索引表(目录)
3、数据的运算
分为:增加、删除、修改、查找、排序
算法 是对特定问题求解方法的一种描述,是指令的有限序列,其中每一条指令表示一个或多个操作。
描述算法的两个参数:
时间复杂度:基本操作重复执行n次 T(n)=0(f(n))
空间复杂度:运行时所需要的存储空间的大小的质量 S(n)=0(f(n))
算法的要求:
正确性、可读性、健壮性、通用性、效率与存储量需求
================================================================================
线性表:
由 n(n>0)个元素组成
n=0 空表
n>0 讲非空线性表记为 a0 a1 a2 a(n-1)
a0为首节点 a(n-1)尾节点
顺序表:线性表的节点按照逻辑顺序依次存放在一组地址连续的存储单元,用这个方法存储的线性表为顺序表
两个最常见的操作:存数据和取数据
特点:
1、物理顺序和逻辑顺序是一致的
2、数据之间的关系,可通过物理关系体现
操作:
初始化顺序表
在指定位置插入一个元素
实现步骤:
1、检查顺序表是否已满
2、插入的位置i是否合法(是否越界)
3、将现行表L中的第i个元素至第n个结点后移一个位置
4、将结点e插入到结点a(i-1)之后(其实就是第i个位置)
5、线性表长度+1
在指定位置删除一个元素
实现步骤:
1、检查顺序表是否为空
2、检查删除位置i是否合法
3、将线性表L中的第i+1个至第n个结点依次向前移动一个位置
4、线性表长度-1
顺序表总结:
1、插入或删除一个数据元素时,时间主要耗费在移动元素上,而移动元素的个数取决于插入或删除元素的位置
2、空间不能充分利用,扩展能力较差
3、若线性表的主要操作时进行查找及存取表中任一个元素,插入和删除操作较少时,采用顺序表存储结构为宜
作业:
1、从文件中读取一个顺序表的数据,对顺序表中的数据进行添加、删除、修改等操作,然后再保存到原文件中,每个功能编写一个函数,由mian函数调用‘
2、合并两个顺序表,需要将其中一个表的数据连接到另外一个表的后面,需要考虑内存溢出的情况。