`
jaychang
  • 浏览: 716421 次
  • 性别: Icon_minigender_1
  • 来自: 嘉兴
社区版块
存档分类
最新评论

栈的创建及POP,PUSH操作

 
阅读更多
#include<stdlib.h>
#include<iostream>

using namespace std;

typedef struct Node{
  char ch;
  Node * next;
  Node * prior;
}Node,* Bottom,* Top;

//创建栈
Node * createStack()
{
  char str;//int len=0;
  Bottom bottom=(Node *)malloc(sizeof(Node));
  Top top=bottom;
  cin>>str;
  bottom->ch=NULL;
  while(str!='n')
  {
     Node *s=(Node*)malloc(sizeof(Node));
     s->ch=str;
     top->next=s;
     s->prior=top;
     top=top->next;
     cin>>str;
    //len++;
  }
  top->next=NULL;
  return top;
}

//对POP出栈顶元素,并返回栈顶指针
Top pop(Top top)
{
  //ch=top->ch;
  //Node * p=top;
  top=top->prior;
  //free(p);
  return top;
}

//将元素压入栈
void push(Top top,char ch)
{
  Node *s=(Node *)malloc(sizeof(Node));
  s->ch=ch;
  top->next=s;
  s->prior=top;
  top=top->next;
}

//根据后进先出原则读取栈的所有元素
void procOutput(Top top)
{
  while(top->ch!=NULL)
  {
    cout<<top->ch<<" ";
    top=top->prior;
  }
  cout<<"\n";
}

int main()
{
  char _char;
  Top top=createStack();
  top=pop(top);
  procOutput(top);
  cin>>_char;
  push(top,_char);
  procOutput(top);
  return 0;
}
 
分享到:
评论

相关推荐

    顺序栈的运算实现(创建、销毁、入栈push、出栈pop、栈满、栈空、数量)

    内容概要:顺序栈的运算实现,包括:创建、销毁、入栈push、出栈pop、栈满、栈空、数量 能学到什么:这是一种功能受限的表结构,通过学习该顺序栈的入出入原理,有助于深入理解数据结构,为后续的框架学习等有很大...

    链式栈的运算实现(创建、销毁、入栈push、出栈pop、栈空、数量)

    内容概要:链式栈的运算实现,包括:创建、销毁、入栈push、出栈pop、栈空、数量 能学到什么:这是一种功能受限的表结构,通过学习该链式表的入出入原理,有助于深入理解数据结构,为后续的框架学习等有很大帮助。 ...

    C++栈类模板

    void Push(const T &item;); //将元素item压入栈 T Pop(void); //将栈顶元素弹出栈 void ClearStack(void); T Peek(void)const; //访问栈顶元素 int StackEmpty(void)const; //测试是否栈满 int StackFull...

    栈的创建和显示C语言程序

    栈的创建和显示 switch(i) { case 0: return 1;break; case 1: InitStack(st); cout!!!\n"; break; case 2: cout输入需要添加的数据:"; cin&gt;&gt;x; Push(st,x); break; case 3: x=st.top; Pop(st,x); ...

    3分钟带你搞懂栈和队列(Python实现)——不懂你锤我

    文章目录前言栈栈结构实现栈的操作Stack() 创建一个新的空栈push(item) 添加一个新的元素item到栈顶pop() 弹出栈顶元素peek() 返回栈顶元素is_empty() 判断栈是否为空size() 返回栈的元素个数测试代码队列队列的实现...

    python中栈的原理及实现方法示例

    栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。...

    链栈及其操作

    链栈的操作,属于数据结构的范围,下吧下吧

    数据结构与算法(3)–栈抽象数据类型及Python实现

    数据结构与算法(3)–栈抽象数据类型及Python实现 1. 什么是栈? 是一种有次序的数据项集合,在栈中数据项的加入和移除都发生在同一端。一端叫做栈顶,另一端叫做栈底。 1.1. 特点 距离在栈底比较近的数据项,待的...

    Python算法应用实战之栈详解

    如果你创建了一个栈,那么那么应该具有以下接口来进行对栈的操作 接口 描述 push() 入栈 pop() 出栈 isEmpty() 判断是否为空栈 length() 获取栈的长度 getTop() 取栈顶的元素,元素不出栈 知道栈...

    程序员面试题精选100题

    我看到这道题目时,第一反应就是每次push 一个新元素时,将栈里所有逆序元素排序。这样栈顶元素将 是最小元素。但由于不能保证最后push 进栈的元素最先出栈,这种思路设计的数据结构已经不是一个栈 了。 在栈里添加...

    实现图的遍历算法 深度优先遍历

    操作结果:从栈底到栈顶依次对S的每个数据元素调用函数visit(),一旦visit()失败,则操作失效 }ADT Stack 队列的抽象数据类型定义: ADT Queue{ 数据对象:D={ai|ai∈ElemSet,i=1,2,…,n,n≥0} 数据关系:Rl={,ai&gt;|...

    1.泛型类 、通配符的使用、通配符的上限和下限 编写泛型类Stack<E>,该类中定义一个成员变量和如下方法:

    构造方法:创建一个空栈 入栈的push方法:添加一个新的元素到栈顶 出栈的pop方法:返回栈顶元素 判断是否空的empty()方法:如果栈为空,则返回true pushAll(Collection src)方法:将方法中指定集合中所有元素...

    JavaScipt中栈的实现方法

    接下来就是数据结构的第一部分,栈。 栈是一种遵从后进先出原则(LIFO,全称为Last In First Out)的有序集合。栈顶永远是最新的元素。 举个例子就是:栈就像放在箱子里的一叠书 你要拿下面的... pop(): 移除并返回栈顶元素

    Python基于list的append和pop方法实现堆栈与队列功能示例

    在栈上"push"元素是个常用术语,意思是把一个对象添加到堆栈中。 删除一个元素,可以把它"pop"出堆栈。 队列: 队列是一种先进先出(FIFO)的数据类型。 新的元素通过"入队"的方式添加进队列的末尾, "出对"就是从队列...

    入栈和出栈的基本操作用Java实现

    首先导入了java.util.Stack类,然后创建了一个Stack对象。接着,我们使用push()方法将元素1、2和3依次入栈。最后,我们使用pop()方法将栈顶元素出栈,并打印出栈后的元素和栈的状态。

    201700130009_张愈博_实验61

    2.数据结构与算法描述 (整体思路描述,所需要的数据结构与算法)(1)首先创建一个基础栈类,包含empty、size、top、pop、push等基本方法 3.测

    java课程实验

    2、使用一维数组编码实现一个栈(Stack)类,要求提供以下操作:(1)boolean isEmpty():判断栈当前是否为空;(2)入栈操作void push(obj):把数据元素obj插入堆栈;(3)出栈操作Object pop():出栈,并返回删除...

    基于python实现模拟数据结构模型

    Stack() 创建一个空的新栈。 它不需要参数,并返回一个空栈。 push(item)将一个新项添加到栈的顶部。它需要 item 做参数并不返回任何内容。 pop() 从栈中删除顶部项。它不需要参数并返回 item 。栈被修改。 peek...

    实验4 数组(4学时)

    2、使用一维数组编码实现一个栈(Stack)类,要求提供以下操作:(1)boolean isEmpty():判断栈当前是否为空;(2)入栈操作void push(obj):把数据元素obj插入堆栈;(3)出栈操作Object pop():出栈,并返回删除...

    Python-:笔记,待完善

    栈的抽象数据类型(堆栈的ADT): 操作方式: Stack():栈的初始化,创建一个空栈,不包含任何数据项。 push(item):把项目加入栈顶,无返回值。 pop():将栈顶数据项可移除,并返回,栈被修改。 peek():...

Global site tag (gtag.js) - Google Analytics