数据结构栈和队列学习笔记

课堂笔记

2024/03/12

  1. 括号匹配问题
  2. 数组栈和链式栈
    链式栈需要用头插法
     

2024/03/13

  1. 括号匹配,返回前记得把栈free一下,不然有内存泄漏
  2. 入队列是 1 2 3 4
    出队列也一定是 1 2 3 4
  3. 队列需要定义两个结构体
    struct QueueNode 和 struct Queue

2024/03/14

  1. 栈没有访问栈底元素的功能,如果想要访问栈底元素,需要将栈pop到只剩一个元素
  2. 循环队列,如果使用单链表来实现结构,获取队列尾元素十分不方便,因为rear指针指向的尾元素的下一个结点
    解决方法:
    1. 双向链表
    2. 增加一个rearPrev指针
    3. 遍历获取队尾数据
  3. 循环队列个数公式 推导
    X     X     X     X     X     X
    0     1      2     3     4      5
           front               rear
    size = rear - front

    X     X     X     X     X     X
    0     1      2     3     4      5
           rear              front
    size = N - front +rear   < N

    当rear在front后时,size = rear - front = (N - front +rear) % N
    当rear在front前时,size = N - rear - front = (N - front +rear) % N
    两种情况共用一个等式,所以循环对列个数公式为N - front +rear) % N
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值