栈 & 我想你了
来源:互联网 发布:python安装提示错误 编辑:程序博客网 时间:2024/04/29 14:30
// 你看,那个人好像一条狗哎。
-------------------------------------------------------------------------------------------------------------------------------------
我:
她:“这是什么?”
我:“ 栈 ”
于是她把栈画在了纸上,转过头问我:“我画的像吗?”
我:“…像”
她乐了,开始给我科普:“栈是一种后进先出(last-in,first-out,LIFO)的策略,意思是最后进去的数据会被第一个读出来,top叫栈顶,是个指针,它是允许进行插入和删除操作的一端。”
我:“我听说,它的插入叫压入(PUSH),它的删除叫弹出(POP),是这样吗?”
她:“对,假设这个栈叫S,压入和弹出的过程就是下面这个样子的”
我:“伪代码是这样的吗?”
PUSH(S,x):
S.top=S.top+1;
S[S.top]=x;
POP(S):
S.top=S.top-1;
return S[S.top+1];
她:“揍你!抄《算法导论》的吧?!”
我:T_T
她:“你来给咱写个用数组实现的栈吧”
我:
#include <stdio.h>#include <stdlib.h>#include "stacklib.h"int main(void) {Stack s;//创建栈 createStack(&s);//入栈 for(int i = 1;i<=5;i++){push(&s,i);}//出栈 pop(&s);//打印 displayStack(&s);return 0;}
#define MAX_SIZE 100typedef struct{ int data[MAX_SIZE]; int top;}Stack,*pStack;//创建空栈 void createStack(pStack s){//栈顶归零 s->top=0;}//入栈 void push(pStack s,int x){//栈顶+1 s->top=s->top+1;//给新元素赋值 s->data[s->top]=x;}//出栈 void pop(pStack s){//栈顶-1 s->top=s->top-1;}//显示栈内元素 void displayStack(pStack s) { int i = 1; while (i<=s->top) { printf("%d\n", s->data[i]); i++; } }// I miss you so much .
结果:
0 0
- 栈 & 我想你了
- 我想死你了
- 我想你了
- 对不起,我想你了!
- 如果我想你了
- 如果我想你了
- 我想你了
- 白雪我想你了!!
- 我想你了
- 吴攀红,我想你了。
- 我想你了,宝贝
- 我想你了
- 妈妈,我想你了
- 亲爱的 我想你了
- 让我想起了你
- 我想你了,你可曾知道?
- 我想你了,你却不知道
- 我想你了,你却不知道
- 什么样男人必出轨 震惊!出轨男子名字中居然都有这字
- 安装kafka rest proxy - 使得我们能通过http访问kafka
- RegExp在IE8等浏览器中的兼容性问题
- poj1182食物链(并查集)
- UISlider
- 栈 & 我想你了
- 图论 最短路径dijkstra算法
- Arduino 高级教程 02:用 Visual Studio 2015 开发 Arduino 应用程序(一)
- 代码的修炼之路
- 使用wget从oralce官网下载JDK
- red5源码分析---12
- 设计模式之原型模式(Prototype)
- android动画之SurfaceView
- 第十二周项目二 时间类的运算符重载