C語言------資料結構(棧操作,數組實現)__資料結構

來源:互聯網
上載者:User
/*****************************************************copyright (C), 2014-2015, Lighting Studio. Co.,     Ltd. File name:Author:Jerey_Jobs    Version:0.1    Date: Description:Funcion List: *****************************************************/#include <stdio.h>#include <stdlib.h>#define Max 10struct stack{int stack_text[Max];int top;//數組元素(棧元素)下標};typedef struct stack Stack;enum return_result{PUSH_ok,PUSH_no,FULL_ok,FULL_no,EMPTY_ok,EMPTY_no};void is_malloc_ok(Stack *stack)//是否分配成功{if(stack == NULL){printf("malloc error!\n");exit(-1);//結束進程}}void creat_stack(Stack **stack)//分配空間{(*stack) = (Stack*)malloc(sizeof(Stack));//分配空間    is_malloc_ok(*stack);}void init_stack(Stack *stack)//初始化{stack->top = -1; //top賦值為-1,位置在棧頂}int is_full(Stack *stack)//判斷棧是否滿{if(stack->top == Max)return FULL_ok;elsereturn FULL_no;}int push_stack(Stack *stack,int num)//入棧操作{if(is_full(stack) == FULL_ok)//棧滿{printf("the stack is full!\n");return PUSH_no;}    //棧未滿stack->top++; //top為-1 執行完top為0stack->stack_text[stack->top] = num; //值寫入return PUSH_ok;}int is_empty(Stack* stack)//判斷棧是否為空白{if(stack->top == -1){return EMPTY_ok;}return EMPTY_no;}int pop_stack(Stack *stack)//出棧操作{if(is_empty(stack) == EMPTY_ok)//棧已空{   printf("stack is empty\n");   return EMPTY_ok;}else //棧不空 棧內有內容return EMPTY_no;}int main(){    Stack* stack;int i;creat_stack(&stack);//建立棧init_stack(stack);//棧初始化for(i = 0;i < Max;i++)//入棧次數{if(push_stack(stack,i + 1) == PUSH_ok)//入棧printf("入棧成功!\n");        elseprintf("入棧失敗!\n");}for(i = 0;i < Max;i++)//出棧次數{if(pop_stack(stack) == EMPTY_no)//出棧判斷棧是否為空白{printf("num = %d\n",stack->stack_text[stack->top]);stack->top--;//前移    }else{printf("棧空!\n");}}    return 0;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.