- 你对本章内容的小结
- 完成作业或实践时的心得体会
- 值得向大家分享的资料?每一项推荐都请说明推荐理由及列出相关链接(或书目名称,具体页码)
- 上次博客确定的目标达到了吗?如果没达到,请分析原因
- 接下来的目标
1.对本章内容的小结:
第三章我们学习了栈和队列的定义、表示方法和实现。栈和队列是操作受限的线性表:
栈和队列的比较
比较项目 | 栈 | 队列 |
逻辑结构和存储结构 | 二者均与和线性表的结构相同 | |
运算规则 | FILO(只允许在栈顶进行操作) | FIFO(队尾插入,队头删除) |
链式不用判断是否满但要判断是否空,顺序式都要判断满或空 |
注意:栈有一个重要的应用就是实现递归。
2.完成作业或实践时的心得体会:
一、顺序栈和顺序队列的对比:
1 typedef int SElemType;//顺序栈 2 typedef struct 3 { 4 SElemType *base;//base指针始终指向栈底的位置 5 SElemType *top;//每次插入新元素后top指针后移(初始值是同base一个地址) 6 int stacksize;//其实这个stacksize可以用MAXSIZE代替…… 7 }SqStack;
出入栈方法:
*S.top++ = e;( e = *--S.top; )
1 #define MAXSIZE 100 2 typedef int QElemType;//顺序队列 3 typedef struct 4 { 5 QElemType *base; 6 int front;//无top指针 QElemType *top; 7 int rear;//增加头尾指针 8 }SqQueue;
出入队列方法:
Q.base[Q.rear] = e;
Q.rear = (Q.rear+1)%MAXSIZE;
(e = Q.base[Q.front];
Q.front = (Q.front+1)%MAXSIZE;)
二、链栈和链队的对比:
1 typedef struct StackNode//链栈 2 { 3 char data;//数据域 4 struct StackNode *next;//指针域 5 }StackNode, *LinkStack;
1 typedef int QElemType; 2 typedef struct Node 3 { 4 QElemType data; 5 stuct Node *next; 6 }QNode,*QueuePtr; 7 typedef struct 8 { 9 QueuePtr front;//队头指针 10 QueuePtr rear;//队尾指针 11 }LinkQueue;
通过以上对发现,人为规定的各种操作需搞清!!
3.值得向大家分享的资料?每一项推荐都请说明推荐理由及列出相关链接(或书目名称,具体页码)
最近许多题目都需要注意“输入”,所以我就收集了一点
c/c++字符串输入方式
4.上次博客确定的目标达到了吗?如果没达到,请分析原因
上次我的目标是更好地运用上学期所学的知识,我认为最近几次代码我都能做到,希望以后能做到更好。
5.接下来的目标
希望能在代码的输入上,做到“盲打”!!!