有关数据结构(单链表、堆栈、队列)这方面的知识如何能够快速掌握呢。
有关数据结构(单链表、堆栈、队列)这方面的知识如何能够快速掌握呢。
收起
链表是基础,堆栈、队列这些都是在链表的基础上增加了自己独特的特征。
队列:跟排队一样,讲究先来后到,所以是先进先出(先进队列的元素在出队时先出)
栈:跟队列相反,后入栈的先出栈,是后进先出(或者先进后出)
队列和栈都是在链表的基础上发展而来的。链表是由一个个节点串联而成,跟日常生活中的铁链子很像,所以取名叫链表。
对于链表、堆栈和队列,其基本的操作都是相似的:
(1)增加:在链表(或者队列、堆栈)后增加元素
(2)插入:在制定位置插入元素
(3)删除:删除制定位置的元素(特殊的,删除链表末尾的元素,队列和堆栈不适用这个,堆栈和队列只能根据自己的特定出栈或者出队)
(4)长度:计算链表(或者堆栈的长度)
(5)遍历:遍历链表
(6)首元素:获取链表/堆栈/队列的首元素
都是一个道理,明白了链表,再结合队列和堆栈各自的特征去适当修改一下相关函数就可以了。
学习的建议:
找一个链表的例题,自己写一下这几个函数,搞明白逻辑关系,弄懂链表后,再去看队列和堆栈的相关知识就很轻松了。
对于竞赛,可能会出现链表的排序或者多种数据结构的综合运用等相关知识,只要搞定了链表,其它的都是纸老虎。
另外,链表一般包括带哨兵节点的链表和不带哨兵节点的链表,哨兵节点只用来标记链表头,不实际存储有效数据。带哨兵节点的链表相对简单一些,可以先从带哨兵节点的链表开始学习,然后再研究不带哨兵节点的链表。两者的逻辑基本一致。
如有帮助,望采纳,谢谢。
报告相同问题?