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

原创 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们可以指点一下。 剩下的都写...
  • HHH_go_
  • HHH_go_
  • 2017年05月08日 23:12
  • 228

线性表操作(链式结构)

  • 2014年11月04日 21:59
  • 3KB
  • 下载

重温数据结构:栈的顺序表示和实现与栈的链式表示和实现

1.栈的顺序表示与实现 /* * $filename: MyArrayStack.java,v $ * $Date: 2014-3-11 $ * Copyright (C) ZhengHaib...

栈的链式存储操作

  • 2013年10月22日 20:35
  • 1KB
  • 下载

数据结构_线性表_链式存储_单向循环链表的基本操作

1.概述: 对于一个循环链表来说,其首节点和末节点被连接在一起。这种方式在单向和双向链表中皆可实现。要转换一个循环链表,可以选择开始于任意一个节点然后沿着列表的任一方向直到返回开始的节点。再来看另一...

数据结构 串(链式存储)的基本操作

#include #include #define OK 1 #define ERROR 0 #define OVERFLOW -2 type...

PTA数据结构与算法题目集(中文)4-6 带头结点的链式表操作集 (20分)

本题要求实现带头结点的链式表操作集。 函数接口定义: List MakeEmpty(); Position Find( List L, ElementType X ); bool Inser...

PHP数据结构之七_队列的链式存储和队列的基本操作

PHP数据结构之七 队列的链式存储和队列的基本操作 队列 1.定义:队列(Queue):也是运算受限的线性表。是一种先进先出(First In First Out ,简称FIFO)的线性表。只...
  • nuli888
  • nuli888
  • 2016年08月08日 15:58
  • 419
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用链式结构表示栈的各种操作
举报原因:
原因补充:

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