面试官问我什么是「栈」,我随手画了10张图来解释(6)
2023-04-29 来源:飞速影视
出栈(pop)操作,是在栈不为空的情况下,重复说一次,一定要进行判空操作,将栈顶的元素删除,同时top指针,next向下进行移动即可的操作。
其代码可以表示为:
//出栈 popLink_Stack *Pop_stack(Link_Stack *p){Node *temp; temp = p->top;if (p->top == NULL) { printf("错误:栈为空");return p; }else { p->top = p->top->next; free(temp);//delete temp; p->count--;return p; }}
栈的基本操作—遍历
这个就很常见了,也是我们调试必须的手段。
栈的遍历相对而言比较复杂,由于栈的特殊性质,其只允许在一端进行操作,所以遍历操作操作永远都是逆序的。
简单一点描述,其过程为,在栈不为空的情况下,一次从栈顶元素向下访问,直到指针指向空(即到栈尾)为结束。
其代码可以表示为:
//遍历栈:输出栈中所有元素intshow_stack(Link_Stack *p){Node *temp; temp = p->top;if (p->top == NULL) {printf("");printf("错误:栈为空");return0; }while (temp != NULL) {printf("%d ", temp->data); temp = temp->next; }printf("
");return0;}
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)
www.fs94.org-飞速影视 粤ICP备74369512号