栈 & 我想你了

来源:互联网 发布: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
原创粉丝点击