zoukankan      html  css  js  c++  java
  • 基本栈c语言的实现

     1 /*初始栈顶为-1,栈满时栈顶指针为MAX_STACK_SIZE-1
     2 */ 
     3 
     4 #include<stdio.h> 
     5 #include<stdlib.h>
     6  
     7 #define MAX_STACK_SIZE 100        /*最大栈元素数*/
     8 typedef struct {
     9     int key  ;                                                        
    10 } element;
    11 
    12 element stack[MAX_STACK_SIZE];
    13 
    14 bool IsFull(int *top );            
    15 void  Add(int *top,element item);
    16 bool IsEmpty(int *top );
    17 element Delete(int *top);
    18 
    19 
    20 int main()
    21 {
    22     int i;
    23     int top=-1;
    24     element j;
    25     j.key=0;
    26     
    27     if(IsEmpty(&top))
    28     { 
    29         for( i = 0; i<102; i++){
    30             if(!IsFull(&top))    
    31                 Add(&top,j);    
    32             else{ 
    33                 printf("栈满
    ");
    34                 break;
    35                 } 
    36                 j.key++;
    37             
    38         } 
    39     } 
    40     while(!IsEmpty(&top))
    41         printf("%d 
    ",Delete(&top).key);
    42     if(IsEmpty(&top))    
    43         printf("
    栈空,已输出全部元素!
    ");
    44     return 0;
    45 }
    46 
    47 
    48 bool IsFull(int * top )//1为满0为不满 
    49 {
    50     if(*top >=MAX_STACK_SIZE-1){
    51         return 1;
    52     }
    53     else{
    54         return 0;
    55     }
    56 }
    57 
    58 bool IsEmpty(int *top)//1为空  0为不空 
    59 {
    60     if(*top == -1){
    61         return 1;
    62     }
    63     else{
    64         return 0;
    65     }
    66 } 
    67 void  Add(int *top,element item)
    68 {
    69     if(*top >=MAX_STACK_SIZE-1){
    70         printf("栈满"); 
    71         return ;
    72     }
    73     else
    74         stack[++(*top)]=item;
    75 }
    76 element Delete(int *top)
    77 {
    78     if(*top == -1){
    79         printf("栈空");
    80     }
    81     return stack[(*top)--]; 
    82 }
  • 相关阅读:
    Flutter 布局类组件:简介
    Flutter 基础组件:进度指示器
    Flutter 基础组件:单选框和复选框
    Flutter 基础组件:图片和Icon
    Flutter 基础组件:按钮
    Flutter 基础组件:文本、字体样式
    Flutter 基础组件:状态管理
    Flutter 基础组件:Widget简介
    网络编程之TCP
    入门多线程
  • 原文地址:https://www.cnblogs.com/hysz/p/7147104.html
Copyright © 2011-2022 走看看