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

今天主要学习了栈的习题和队列的链表实现
一、栈具备栈顶和栈底,栈顶是数据的进入和输出端,top是栈顶的上一位,栈的实现能够用链表和数组来实现,可是链表的尾插和尾删复杂度太高,因此用数组更好。
二、习题:有效的括号如:() {()} {([])}
思想:
利用栈的先进后出的特性,首先遍历字符串,遇到左边的括号就进栈,而后遇到右边的就比较,比喻遇到'}',就把栈顶元素读出来,若是同样,依次读取栈中元素来和字符串比较,若是进栈的和字符串剩下的都是左右关系,那就是true,须要注意,比较结束时,栈中元素得为空,且比较开始时,栈不能为空,这些都得注意。数组

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

相关文章
相关标签/搜索