• c语言编程之栈(数组实现)


      用数组实现的顺序栈,完成了出栈入栈功能。

      1 #include"stdio.h"
      2 typedef int element;
      3 #define  max    100
      4 typedef struct Stack{
      5         element data[max];
      6         element bottom;
      7         element top;
      8 }stack,*pStack;
      9 
     10 //push data into the stack
     11 element push(pStack P,element num)
     12         {
     13            int i=0;
     14            if(P->top==P->bottom)
     15                 {
     16                   printf("stack is empty
    ");
     17                   return 0;
     18                 }
     19            ++(P->top);
     20            P->data[P->top]=num;
     21            printf("p->top:%d
    ",P->top);
     22         }
     23 
     24 //pop data out of the stack
     25 element pop(pStack P)
     26         {
     27           if(P->top==P->bottom)
     28                 {
     29                   printf("stack is empty
    ");
     30                   return 0;
     31                 }
     32           printf("pop num position:%d pop num :%d
    ",P->top,P->data[P->top]);
     33           P->top--;
     34           return 0;
     35         }
     36 
     37 //init a stack
     38 element Init_stack(pStack P,element num)
     39         {
     40            int i=0;
     41            P->top=-1;
     42            P->bottom=0;
     43            for(;i<num;i++)
     44                 {
     45                  P->data[i]=i;
     46                  ++(P->top);
     47                  printf("data:%d
    ",P->data[i]);
     48                 }
     49            printf("init stack is finished
    ");
     50            return 0;
     51         }
     52 //clear a stack
     53 element Clear_stack()
     54         {
     55 
     56         }
     57 //get a data from top stack
     58 element Get_topdata()
     59         {
     60 
     61         }
     62 //delet a stack
     63 element Delet_stack()
     64         {
     65 
     66         }
     67 //print stack's data
     68 element Print_stack(pStack P)
     69         {
     70            int num=0;
     71            num=P->top;
     72            while(num>=(P->bottom))
     73              {
     74                printf("stacknum:%d
    ",P->data[num]);
     75                --num;
     76              }
     77         }
     78 element main()
     79         {
     80           pStack P;
     81           element *numb=0;
     82           P=(pStack)malloc(sizeof(struct Stack));
     83           Init_stack(P,20);
     84           push(P,66);
     85           push(P,30);
     86           push(P,50);
     87           push(P,70);
     88           //push(P,80);
     89           Print_stack(P);
     90           pop(P);
     91           pop(P);
     92           Print_stack(P);
     93           return 0;
     94         }
  • 相关阅读:
    leetcode 子集
    leetcode 1111. 有效括号的嵌套深度
    leetcode289 生命游戏
    关于三次握手和四次挥手,发送方和接收方处于的状态的问题。
    面试题:随意取数
    2020/3/31
    01背包和完全背包
    USACO Agri-Net 3.1
    mfc小计
    static 成员小记
  • 原文地址:https://www.cnblogs.com/qiuheng/p/5784037.html
Copyright © 2020-2023  润新知