0
点赞
收藏
分享

微信扫一扫

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


前言:

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

核心 :

线性表定义

从字面意义来看,呈线性,所以说,它是一种线性结构,现在我们来看书中的定义:线性表是由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 }


总结:  

在总结中进步,不断成长!   

举报

相关推荐

0 条评论