第三章学习小结
一. 本章内容小结
- 栈和队列是操作受限的线性表,其区别是运算规则不同。
- 栈是后进先出,队列是先进先出。
- 在链栈中,以链表的头部作为栈顶是最方便的,不需要附加一个头结点。
- typedef struct b{
int data;
struct b*next;
}A;
定义结构体名字是为了递归定义,若不用递归定义可直接写int*next
5.使用递归的情况:定义是递归的,数据结构是递归的,问题的解法是递归的。
“分治法”求解递归问题算法的一般形式为:
void p(参数表)
{
If(递归结束条件成立)可直接求解;
else p(较小的参数);
}
- 队列:队空的条件:Q.front==Q.rear
队满的条件:(Q.rear+1)%MAXQSIZE==Q.front
入队:Q.data[Q.rear]=e,Q.rear=(?)%?
出队:e=Q.data[Q.front],Q.front=(?)%?
- 入队操作是指在队尾插入一个新的元素
出队操作是将队头元素删除
二. 完成作业或解决困难时的经验分享
作业的括号匹配一开始不知道要怎么判断其是否正确,而且对switch还不能熟练运用,然后是部分正确,不知道错在了哪里。
三. 分享的资料
- 学计算机的同门
- 课本
- 博客
四. 存在的困难
不能熟练地写代码,解题目时总是要花费很多时间去翻C++的书,可能是因为基础不够扎实,在编写代码时会出现错误。
五. 目标
- 达到了,花了时间去看代码
- 坚持每周打代码,做有关练习。