12月10日 数据结构 周日

来源:互联网 发布:c语言线程锁 编辑:程序博客网 时间:2024/05/22 01:57
数据结构
12月10日   周日 


问题:
单链表
栈的应用
斐波那契数列
字符串逆转
进制转换
括号匹配
表达式求值


循环队列




新知识:


感悟:老办法解决不了新问题,旧的行业赚不了新时代的钱

1.入栈(push)
①先判断栈是否已满:if(s.top==M-1){……}
②递增s.top:  s.top++
③存入元素: s.a.[s.top]=e;  先加后压


2.出栈(pop)
①先判断空:if(s.top==-1){……}
②取出元素:e=s.a[s.top];
③递减s.top:  s.top--;


3.输出:从栈顶到栈低或者是栈低到栈顶


队列(直线)
1.入队
①判断if(q.rear==M-1){}
②存入元素:q.a[q.rear]=e;
③队尾递增:q.rear++;
2.出队
①判空:if(q.rear==q.front){……}
②取出元素:e=q.a[q.front]
③队头递增:q.front++;
3.输出:一般是从队头到队尾


队列(循环队列)
操作跟直线型队列一致,但要注意临界条件的判断。
1.队满:(q.rear+1)%M==q.front
2.队空 :  q.rear==q.front
3.入队 :  q.rear=(q.rear+1)%M
4.出队:q.front=(q.front+1)%M
5.长度:(q.rear-q.front+M)%M
(尾-头+M)%M


不是路不平 只是你不行