首页 > 其他 > 详细

3-10(栈的习题和队列的实现)

时间:2021-03-11 00:05:25      阅读:30      评论:0      收藏:0      [点我收藏+]
今天主要学习了栈的习题和队列的链表实现
1、栈具有栈顶和栈底,栈顶是数据的进入和输出端,top是栈顶的上一位,栈的实现可以用链表和数组来实现,但是链表的尾插和尾删复杂度过高,所以用数组更好。
2、习题:有效的括号如:() {()} {([])}
思想:
利用栈的先进后出的特性,首先遍历字符串,遇到左边的括号就进栈,然后遇到右边的就比较,比喻遇到‘}‘,就把栈顶元素读出来,如果一样,依次读取栈中元素来和字符串比较,如果进栈的和字符串剩下的都是左右关系,那就是true,需要注意,比较结束时,栈中元素得为空,且比较开始时,栈不能为空,这些都得注意。

3、队列
队列具有先进先出的特点,具有队头和队尾,可以用数组和链表来实现,但是数组的头删时间复杂度过高,所以不适用,因此选用链表更加合适。
链表来实现队列,需要2个结构体:
一是链表的结构,
struct QueueNode
{
int data;
struct QueueNode next;
};
二是队列的结构
struct Queue
{
struct stackNode
Front;
struct stackNode* Back;
};

3-10(栈的习题和队列的实现)

原文:https://blog.51cto.com/15085121/2655160

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!