面试官问我什么是「栈」,我随手画了10张图来解释(4)
2023-04-29 来源:飞速影视
链表栈
我们以链表栈的动态链表栈为例子,进行栈的设计。
首先是栈的结点,设计出两个结构体,一个结构体Node表示结点,其中包含有一个data域和next指针,如图所示:
Node
其中data表示数据,next指针表示下一个的指针,其指向下一个结点,通过next指针将各个结点链接。
接下来是我们设计的重点,为这个进行限制性的设计,我们需要额外添加一个结构体,其包括了一个永远指向栈头的指针top和一个计数器count记录元素个数。
其主要功效就是设定允许操作元素的指针以及确定栈何时为空,如图所示:
Stack
这里我采用的是top和count组合的方法。其代码可以表示为:
//栈的结点设计//单个结点设计,数据和下一个指针typedefstructnode{int data; structnode *next;} Node;
利用上面的结点创建栈,分为指向头结点的top指针和计数用的count。
typedefstructstack{Node *top;int count;} Link_Stack;
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)
www.fs94.org-飞速影视 粤ICP备74369512号