#include<stdio.h> #include<stdlib.h>

//栈的结构体定义 //顺序栈 #define stacksize 100 typedef struct { int data[stacksize]; int top; }seqstack;

//初始化 /* 1、开内存 2、sq->top=-1 / seqstack sq; void Intistack() { sq = (seqstack*)malloc(sizeof(seqstack)); sq->top = -1; }

//进栈 int push(int x) { if (sq->top == stacksize-1) return 0; sq->top++; sq->data[sq->top] = x; return 1; }

//出栈 int pop() { if (sq->top == -1) return 0; sq->top--; return 1; }

//展示 void show() { int temp = sq->top; while (temp != -1) { printf("%d\t", sq->data[temp]); temp--; } }

//主菜单 void menu() { int choose, x; Intistack(); while (1) { printf("\n请选择操作:\n\t1、入栈\n\t2、出栈\n\t3、展示栈中内容\n\t4、退出\n"); scanf("%d", &choose); switch (choose) { case 1: scanf("%d", &x); push(x); break; case 2: pop(); break; case 3: show(); break; case 4: free(sq); exit(0); break; default: printf("无效选项,请重新选择\n"); break; } } }

//主函数 int main() { menu(); return 0; }

C语言顺序栈实现及常见错误分析

原文地址: https://www.cveoy.top/t/topic/bgul 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录