关于数据结构的绪论部分,昨日已经跟大家总结过了。有道友问关于我们进度的问题,这个数据结构书上总共有二十讲。分别是绪论,线性表三讲,栈和队列两讲,串两讲,数组和广义表两讲,树和二叉树三讲,图两讲,动态储存管理,查找,内部排序,外部排序和文件。一、线性表的逻辑结构
(一)线性表的定义
线性表的定义:线性表是一个具有n(n>=0)个数据元素的线性关系有限序列。元素的个数为线性表的长度,当n=0时,线性表为空表,用一对空括号表示;当n!=0时,线性表可以表示为(a1,a2,a3,…an),a1为表头元素,an为表尾元素,an-1是an的直接前驱,an+1是an的直接后继。线性表的数据元素:可以为一个数,也可以为一个符号或者复杂数据类型,但同一个线性表中的元素必须具有相同的特性。例如:
线性表1:字母表(a,b,c…z)
线性表2:数字表 (2,5,9,1,0)
线性表2:线性表中数据元素为复杂类型的表 新生报道表线性表的逻辑结构:线性表的逻辑结构为线性结构,元素之间是一对一的关系。
(二)线性表的运算
线性表的基本操作如下:
初始化表:InitList(L),构造一个空的线性表.求表长:Length(L),返回表的长度,即表中元素的个数.取表中元素:GetElem(L,i),取表中元素,当i小于等于表长时返回表中元素,当i大于表长时返回一个特殊的值.取元素ai的直接前驱:PriorElem(L,x,pre_x),取表中元素x的直接前驱取元素ai的直接后继:NextElem(L,x,next_x),取表中元素x的直接后继定位:LocateElem(L,x),返回元素x在线性表里的位置,若list中存在多个x则只返回第一个x的位置,若list中不存在x则返回0.插入元素:ListInsert(L,i,x),在线性表list中的某一位置I插入元素x,运算结果使得表长加一。删除元素:ListDelete(L,i),在线性表list中的某一位置上删除此元素,此运算的前提条件是表长不为0,此时运算结果为表长减一。判断表空:Empty(L),判断表是不是空表,若是则返回“true",若不是则返回”false“。表置空操作:Clear(L),已知线性表是空表或非空表,此操作是将list置为空表。输出线性表:PrintList(L),按前后顺序