首页 > 代码库 > 2017/03/31学习笔记
2017/03/31学习笔记
双向链表
单向链表的节点都只有一个指向下一个节点的指针
单向链表的数据元素无法直接访问其前驱元素
逆序访问单向链表中的元素时极其耗时的操作
双向链表在单向链表的基础上增加了指向前驱的指针
功能上双向链表可以完全取代单向链表的使用
栈是一种特殊的线性表
栈仅能在线性表的一端进行操作
栈顶:允许操作的一端
栈底:不允许操作的一端
首先它是一个线性表,也就是说,栈元素具有线性关系,即前驱后继关系。只不过它是一种特殊的线性表。定义中说是在线性表的表尾进行插入和删除操作,这里表尾是指栈顶,而不是栈底。
他的特殊之处就在于限制了这个线性表的插入和删除位置,他始终只在栈底进行。这也就使得:栈底是固定的,最先进栈的只能在栈底。
栈的插入操作,叫作进栈,也叫压栈、入栈。
栈的链式存储结构,简称链栈
想想看,栈只是栈顶来做插入和删除的操作,栈顶放在链表的头部还是尾部呢?
由于单链表有头指针,而栈顶指针也是必须的,那么干嘛不让它俩合二为一呢,所以比较好的办法是吧栈顶放在单链表的头部。另外,都已经有了栈顶在头部,单链表中比较常用的头结点也就失去了意义,通常堆与链栈来说,是不需要头结点吧
2017/03/31学习笔记
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。