用链式结构表示栈的各种操作

原创 2012年03月21日 20:21:18

#include<iostream.h>
#include<stdlib.h>
#define error 0
#define ok 1

typedef int elemtype;
typedef struct StackNode{
elemtype data;
struct StackNode *next;
}StackNode,*LinkStack;
int StackInit(LinkStack &S) 

                  
   S= (StackNode*)malloc(sizeof(StackNode)); 
   if(!S)   return error;
   S= NULL; 
    return ok;  

 int StackPush(LinkStack &S,elemtype e) 

   LinkStack p; 
    p = (StackNode *)malloc(sizeof(StackNode));
 p->data=e;
    p->next = S;                               
    S= p;                                    
    return ok; 

int StackPop(LinkStack &S,elemtype &e) 

    LinkStack p; 
  
    if(S != NULL) 
    {   e = S->data; p = S;
      
  S= S->next;                  
        delete(p);                                
    }    
 else 
        cout<<"stack empty!/n"; 
     return ok;  
}                           
        
     
 
 int Putout(LinkStack S )
{   LinkStack p;
 p=S;
  if(S==NULL) return error;
cout<<"输出所有元素";
while(p)
{cout<<p->data<<" ";
p=p->next;}
return ok;
}

 


int main() 

    LinkStack  S; 
     StackInit(  S); 
   int e,i,n;
   cout<<"输入栈的长度n:";
   cin>>n;
    for(i=0;i<n;i++)
 {cout<<"请输入进栈的元素:";
    cin>>e;
  StackPush( S,e);  
    }
 Putout( S);
 
 cout<<"输入要插入到栈中的元素";
 cin>>e; StackPush( S,e); Putout( S);
  cout<<"\n删除栈顶元素出栈的结果为:"; 
  StackPop( S,e);
  Putout( S);
 
 cout<<endl;
    return 0;
  }  

   

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

链表、栈、队列(链式存储结构的添加,删除,查找,翻转 操作)

定义: 1.栈是一种先进后出的结构 2.队列是先进先出,如果是用数组实现的话要判断队列是否满,链表的话不存在满的情况 指针用的不多,如果有什么问题或者优化希望dalao们可以指点一下。 剩下的都写...

再回首,数据结构——字符串与数组的常见操作(链式存储,包含朴素匹配算法等)

最近在复习数据结构,顺便看看大一的时候写的代码,看完之后比当初有了更加深刻的体会。          希望这些能提供给初学者一些参考。 //鏈式存儲的數據結構 typedef struc...

栈的链式存储操作

数据结构之顺序队列和链式队列常用的一些操作

顺序队列是队列的顺序存储结构,顺序队列实际上是运算受限的顺序表。和顺序表一样,顺序队列用一个向量空间来存放当前队列中的元素。由于队列的队头和队尾的位置是变化的,设置两个指针front和rear分别指示...

链式存储结构类的实现 (实现函数)(包括插入,删除等操作的实现)

//程序名:类实现.cpp // 程序功能:链式存储结构类的实现(包括插入,删除等操作的实现) // 作者:吴雨羲 // 日期:2013.9.30 // ...

队列基本操作(链式结构)

基本概念: 队列:是只允许在一端进行插入操作,而在另一端进行删除操作的线性表(或单链表,无头结点)。 即:先进先出 队尾:允许插入的一端;队头:允许删除的一端队列示意图如下: 注意next指针...

二叉树的链式存储结构 前序 后序 中序 层序遍历操作实现 判断是否完全二叉树

#include #include #define OK 1 #define ERROR 0 #define YES 1 #define NO 0 typedef int Status; type...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)