数据结构与算法(二)线性表

来源:互联网 发布:淘宝客服要注意的事项 编辑:程序博客网 时间:2024/05/17 08:31
四、线性表
定义、操作(初始化,增删查)、优缺特点、应用。
线性表图谱:
/*
线性表--顺序表---链表
栈----顺序栈---链栈
队列---顺序队列--链队
----顺序串---链串
*/
线性表:由n个数据类型相同的数据元素(结点)组成的有限序列。特点:均匀性,所有数据元素的数据类型必须相同;有序性,存在唯一的起始结点和终端结点,内部结点有且只有一个直接前趋和有且只有一个直接后继;线性表的长度就是数据元素的个数,0称为空表。
结点的存储密度=数据元素的值所需的存储量/数据元素所需的存储总量。顺序存储结构的密度是1,空间利用率最高。
顺序表—线性表的顺序存储结构。
链表—线性表的链式存储结构。{数据域,指针域};可以加表头结点辅助。
单链表—每个链元素只有一个指针域的链表。
循环链表—链表的尾结点的指针域指向链表的链头,整个链表形成一个环,这样的链表叫循环链表。
双向链表—在单链表的基础上,对每个结点增加一个指向其直接前趋的指针域,这样形成有两条方向相反的链的链表。
循环双向链表—双向链表,并且每条链都是循环的。
线性表的应用:一元多项式相加、约瑟夫问题。


栈—限定只能在表的同一端进行插入、删除操作的线性表。
栈顶—限定插入、删除的一端;
栈底—表中固定的一端;
进栈/压栈/入栈:向一个栈插入新元素;
出栈/退栈:从一个栈删除元素;
栈的特点是:后进先出(LIFO,Last In First Out)。
栈的位置指示器,没元素时栈空,满元素时栈满,栈满再进栈则上溢,栈空再出栈则下溢。
顺序栈—栈的顺序存储结构。
链栈—栈的链式存储结构。


队列—也简称队,指的是只允许在表的一端进行插入操作而在表的另一端进行删除操作的线性表。
队头:允许删除的一端;队尾:允许插入的一端;
进列/入列:向一个队列插入新元素;
出列/出队:从一个队列删除元素;
队列逻辑上的特点是先进先出(FIFO,First In First Out);
队头,队尾,队空,队满;
顺序队列—队列的顺序存储结构。
循环队列—当队尾指示器指向最后一个单元后再进行入列操作时,则把新元素插入到第一个单元中(如果该单元为空闲时)。
链队—队列的链式存储结构。


串:由n(n>=0)个字符组成的有限序列。串是一种数据元素为字符的特殊线性表。
串的长度/串长,双引号括起来的字符序列称为串值;
顺序串—串的顺序存储结构。
链串—串的链式存储结构。
0 0