数据结构
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
不是路不平 只是你不行
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
不是路不平 只是你不行