链式存储结构与顺序存储结构的优缺点
链式结构:相邻数据元素可随意存放,但所占存储空间分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针
优点:插入删除快,存储空间可以动态分配,理论上可以无限添加
缺点:查找慢,存储同样多的数据,因为需要存储结点,需要的空间大于顺序结构
顺序结构:顺序存储时,相邻数据元素的存放地址也相邻,要求内存中可用存储单元的地址必须是连续的
优点:查找快,可以使用二分查找
缺点:插入删除慢,存储密度大,存储空间利用率高,存储空间固定
介绍一下栈和队列两种结构的特点
栈:功能受限的表结构,只有一个端口进出元素,先进后出(FILO)
队列:功能受限的表结构,有两个端口管理数据,一个端口只能进,另一个端口只能出,先进先出(FIFO)
相同点:都是线性结构。
插入操作都是限定在表尾进行。
都可以通过顺序结构和链式结构实现。
异同点:删除数据元素的位置不同,栈的删除操作在表尾进行,队列的删除操作在表头进行。
应用场景不同:常见栈的应用场景包括括号问题的求解,表达式的转换和求值,函数调用和递归实现,深度优先搜索遍历等;
常见的队列的应用场景,包括计算机系统中各种资源的管理,消息缓冲器的管理和广度优先搜索遍历等。
关于排序算法的时间复杂度,空间复杂度和稳定性