zoukankan      html  css  js  c++  java
  • C语言复习--实现栈

    C
     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #define STACK_SIZE 100
     4 typedef char TYPE;
     5 typedef struct Node* pNode;
     6 typedef struct Node node;
     7 typedef pNode Stack;
     8 //char buffer[100];
     9 struct Node
    10 {
    11     TYPE data;
    12     struct Node* next;
    13 };
    14 int isEmpty(Stack s);
    15 void Pop(Stack s);
    16 void Push(Stack s,TYPE element);
    17 TYPE Top_of_stack(Stack s);
    18 Stack CreatStack();
    19 void makeEmpty(Stack s);
    20 
    21 Stack CreatStack()
    22 {
    23     Stack s=(Stack)malloc(sizeof(node));
    24     s->next=NULL;
    25     makeEmpty(s);
    26     return s;
    27 }
    28 void makeEmpty(Stack s)
    29 {
    30     if(s==NULL)
    31     printf("you need creat a stack at first");
    32     while(!isEmpty(s))
    33     Pop(s);
    34 }
    35 int isEmpty(Stack s)
    36 {
    37     return s->next==NULL;
    38 }
    39 void Pop(Stack s)
    40 {
    41     if(isEmpty(s))
    42       printf("Stack is empty");
    43     else
    44     {
    45         pNode temp=s->next;
    46         s->next=s->next->next;
    47         free(temp);
    48     }
    49 
    50 }
    51 void Push(Stack s,TYPE element)
    52 {
    53     pNode temp=(Stack)malloc(sizeof(node));
    54     if(temp)
    55     {
    56         temp->data=element;
    57         temp->next=s->next;
    58         s->next=temp;
    59     }
    60 }
    61 TYPE Top_of_stack(Stack s)
    62 {
    63     if(isEmpty(s))
    64     {
    65         printf("Stack is empty");
    66         return 0;
    67     }
    68     else
    69     return s->next->data;
    70 }
    71 
    72 int main()
    73 {
    74     Stack s =CreatStack();
    75     makeEmpty(s);
    76     Push(s,'c');
    77     Push(s,'d');
    78     Push(s,'e');
    79     while(!isEmpty(s))
    80     {
    81         printf("%c",Top_of_stack(s));
    82         Pop(s);
    83     }
    84 
    85   return 0;
    86 }
     Code
    阿南 On the way.
  • 相关阅读:
    CLR via C#深解笔记三
    CLR via C#深解笔记二
    CLR via C#深解笔记一
    C#参考:Linq 概述
    JavaScript
    jQuery
    JavaScript
    云原生
    python模块----optparse模块、argparse模块 (命令行解析模块)
    python模块----pymysql模块 (连接MySQL数据库)
  • 原文地址:https://www.cnblogs.com/RealMan/p/3682926.html
Copyright © 2011-2022 走看看