C语言数组实现栈操作

来源:互联网 发布:python 元组转换字典 编辑:程序博客网 时间:2024/05/17 19:19
#include <stdio.h>#include <stdlib.h>int * array=NULL;//存放栈元素的数组int count=0;//当前栈的元素个数//初始化栈void init_stack(int size){    array=(int *)malloc(sizeof(int)*size);    if(!array)    {        printf("创建栈失败");        return ;    }}//向栈中压入元素void push( int val){    array[count++]=val;}//输出栈顶元素int peek(){    if(length_stack()==0)    {         printf("此栈为空栈\n");         return 0;    }    return array[count-1];}//输出栈顶顶顶元素并且删除栈顶元素int pop(){    int length=length_stack();    if(length==0)    {        printf("已经到栈底啦\n");        return -1;    }    int val=peek();    count--;    return val;}//求栈的长度int length_stack(){    return count;}//打印栈的信息void print_stack(){    int i=length_stack()-1;    while(i>=0)    {        printf("%d   ",array[i--]);    }}int main(){    init_stack(100);    push(2);    pop();    pop();    int val= peek();    printf("栈顶元素为:%d\n",val);    int size=length_stack();    printf("栈的大小为:%d\n",size);    print_stack();}
1 0