您的位置:首页 > 理论基础 > 数据结构算法

【数据结构之线性表总结】

2017-10-08 19:18 204 查看
前言:

这几天在学习数据结构,引用书中的一句话:数据结构 = 程序 + 算法;本篇博客作为一个知识的总结,希望给大家带来帮助.

核心 :

线性表定义

从字面意义来看,呈线性,所以说,它是一种线性结构,现在我们来看书中的定义:线性表是由n(n>=0)个数据元素组成的有穷序列.

线性表特征

一对一的关系
若结点不为0,除了起始结点没有直接前驱外,其他每个结点有且仅有一个直接前驱,
除了终端结点没有直接后继外,其他每个结点有且仅有一个直接后继..

线性表的顺序存储

插入:

void InsertSeqlist(SeqList L,DataType x,int i){
//将元素x插入到顺序表L的第i个数据元素之前
if(L.length == Maxsize) exit("表已满");
if(i < 1 || i > L.length + 1) exit("位置错")//检查插入位置是否合法
for (j = L.length; j >= i;j--) //初始化i = L.length
L.data[j] = L.data[j-1]; //依次向后移
L.data[i-1] = x; // 元素x置入到下标为i - 1的位置
L.length++; //表长度加1

}

删除:

void DeleteSeqlist(SeqList L,int i){
//删除线性表L中的第i个数据结点
if(i < 1 || i > L.length + 1) exit("位置错")//检查插入位置是否合法
for (j = i,j < L.length;j++) //第i个元素的下标i-1
L.data[j-1] = L.data[j]; //依次向左移

L.length--; //表长度减1

}

定位:

void LocateSeqlist(SeqList L,DataType x){
int i = 0;
while((i <L.length) && (L.data[i]!=x)) //在顺序表中查找值为x的结点
i++;
if( i < L.length )
return i + 1; //若找到值为x的元素,返回元素的序号
else return 0; //未查找到值为x的元素,返回0

}

总结:  

在总结中进步,不断成长!        
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: