zoukankan      html  css  js  c++  java
  • 链栈的基本操作(进栈,出栈)待优化

    #include<stdio.h>
    #include<malloc.h>
    #define ElemType int


    typedef struct LinkNode{//定义栈中节点类型
     ElemType data;
     struct LinkNode *next;
    }LinkNode;


    typedef struct Stack{//定义栈的结构
     LinkNode *top;//栈顶指针
     int stacksize;//栈的大小
    }LinkStack;
    LinkStack Init_stack(LinkStack &S){
     //LinkStack S;
     S.top=NULL;//初始化栈
     S.stacksize=0;
     return S;
    }


    LinkStack Push_stack(LinkStack &S){
     LinkNode *p;
     ElemType a;
     p=(LinkNode *)malloc(sizeof(LinkNode));
     if(p==NULL){
      printf("上溢");
     }else{
      printf("输入入栈元素-1为退出输入 ");
      scanf("%d",&a);
      while(a!=-1){
       p->data=a;
       p->next=S.top;
       S.top=p;
       S.stacksize++;
       scanf("%d",&a);
      }
     }
     return S;
    }


    void Pop_stack(LinkStack &S){
     LinkNode *p;
     int a;
     if(S.top==NULL){
      printf("下溢");
     }
     else{
      p=S.top;
      a=S.top->data;
      S.top=S.top->next;
      printf("栈顶元素出栈:%d ",a);
      free(p);
      printf("%d",S.top->data);
      S.stacksize--;
     }
    }


    void Get_top(LinkStack &S){
     ElemType a;
     if(S.top==NULL){
      printf("空栈");
     }
     printf(" 取栈顶元素:");
     printf("%d ",S.top->data);
    }


    int main(){
     LinkStack S;
     Init_stack(S);
     Push_stack(S);
     //Get_top(S);
     Pop_stack(S);
    // Pop_stack(S);
     //Get_top(S);
     return 0;
    }

  • 相关阅读:
    安装了windows mobile 5.0 pocket pc SDK
    落户这里
    NOIP 2021 游记
    log4net重复记日志
    Eclipse中properties文件中文显示编码、乱码问题
    查找包下已经实施的增强
    vs2010 编译 Ogre 1.8 源码
    Ogre 设计模式之Singleton
    23种设计模式的解析与C++实现及源码打包下载
    vs2010 编译 SALVIA源码
  • 原文地址:https://www.cnblogs.com/jiafeng1996/p/11300793.html
Copyright © 2011-2022 走看看