#include <stdio.h> #include <string.h> #include <stdlib.h> typedef struct node * Ptrl; struct node{ int *Data; int Top; }; int N; Ptrl Dent(int N)//初始化 { Ptrl T; T=(Ptrl)malloc(sizeof(struct node)); T->Data=(int *)malloc(sizeof(int)*N); T->Top=-1; return T; } void Push(Ptrl Ptrs,int item)//入栈 { if(Ptrs->Top==N-1){ printf("堆栈满\n"); return; }else{ ++Ptrs->Top; Ptrs->Data[Ptrs->Top]=item; return; } } int Pop(Ptrl Ptrs)//出栈 { if(Ptrs->Top==-1){ printf("堆栈空\n"); return -1; }else{ return (Ptrs->Data[Ptrs->Top--]) ; } } void empty(Ptrl Ptrs)//清空栈 { Ptrs->Top=-1; } int main() { Ptrl T; int M,Q; scanf("%d",&N); T=Dent(N); for(int i=0;i<N;i++) { scanf("%d",&M); Push(T,M); } for(int i=0;i<N;i++) { Q=Pop(T); if(Q==-1) { printf("堆栈空\n"); } else { printf("%d ",Q); } } return 0; }
用数组建立堆栈
最新推荐文章于 2024-07-06 15:34:31 发布