表:同一类数,按相邻的关系存储

所有的数据存入计算机无非两种手段:顺序、链式

用数组实现,下标表达逻辑关系,不需要额外空间。增删元素都要移动n-k个,O(N),效率低

用单链表实现,指针表达逻辑关系,需要额外空间,增删不需要移动元素,只需要找到指定位置,O(N)

删除的时候可以找到k位置,然后把k=k+1,再把k删除

间接寻址,数组用来存储元素的指针,就不用移动元素本身

 

栈:也是一种线性表,
强调应用性,特点:后进的先出

可以用数组实现,栈链可以用指针实现

应用:主程序调用子程序、递归、算式表达式、

中缀转后缀、地图四染色

 

队列,先进先出的线性表

用指针实现,单链表,定义头尾指针即可

用循环数组实现,比单纯的数组
不需要移动元素,能提高空间效率

实现循环数组,操作前需要用下标对maxsize取模运算

队头游标在第一个元素的前一个位置
牺牲一个元素空间,实现队空或队满的判断

应用:硬件缓存区,广度优先最短路线、子集划分

posted @ 2020-10-12 19:48  赫拉克利特  阅读(64)  评论(0编辑  收藏  举报