第3章学习小结

  1. 你对本章内容的小结
  2. 完成作业或实践时的心得体会
  3. 值得向大家分享的资料?每一项推荐都请说明推荐理由及列出相关链接(或书目名称,具体页码)
  4. 上次博客确定的目标达到了吗?如果没达到,请分析原因
  5. 接下来的目标

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.接下来的目标

希望能在代码的输入上,做到“盲打”!!!

 

posted @ 2019-03-31 23:15  Winston-wmj  阅读(146)  评论(2编辑  收藏  举报