1.数据结构的定义:
数据结构是ADT(抽象数据类型Abstract Data Type)的物理实现。”
数据结构(data structure)是计算机中存储、组织 数据的方式。通常情况下,精心选择的数据结构可以 带来最优效率的算法。”
2.算法定义:
一个有限指令集\r\n接受一些输入(有些情况下不需要输入);
产生输出;
一定在有限步骤之后终止;
每一条指令必须:
有充分明确的目标,不可以有歧义
计算机能处理的范围之内
描述应不依赖于任何一种计算机语言以及具体的实现 手段
3.线性表及其实现:
“线性表(Linear List)”:由同类型数据元素构成有序序列的线性结构:
表中元素个数称为线性表的长度
线性表没有元素时,称为空表
表起始位置称表头,表结束位置称表尾
4.线性表的抽象数据类型:
类型名称:线性表(List)
数据对象集:线性表是 n (≥0)个元素构成的有序序列( a1, a2, ,an )
操作集:线性表L List,整数i表示位置,元素X ElementType,线性表基本操作主要有:
1、List MakeEmpty():初始化一个空线性表L;
2、ElementType FindKth( int K, List L ):根据位序K,返回相应元素 ;
3、int Find( ElementType X, List L ):在线性表L中查找X的第一次出现位置;
4、void Insert( ElementType X, int i, List L):在位序i前插入一个新元素X;
5、void Delete( int i, List L ):删除指定位序i的元素;
6、int Length( List L ):返回线性表L的长度n。
5.线性表的顺序存储实现:
利用数组的连续存储空间顺序存放线性表的各元素
链式存储实现:不要求逻辑上相邻的两个元素物理上也相邻;通过“链”建 立起数据元素之间的逻辑关系
6.广义表:
广义表是线性表的推广
对于线性表而言, n个元素都是基本的单元素;
广义表中,这些元素不仅可以是单元素也可以是另一个广义表。
多重链表:链表中的节点可能同时隶属于多个链