news 2026/1/13 15:18:44

数据结构-栈(核心代码)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数据结构-栈(核心代码)

顺式结构

#define _CRT_SECURE_NO_WARNINGS 1 //栈的顺式结构 #include<stdio.h> #define MAXSIZE 100 typedef int Elemtype; //定义栈 typedef struct stack { Elemtype data[MAXSIZE]; int top; }Stack; //初始化栈 void initstack(Stack* S) { S->top = -1; } //判断栈是否为空 int isempty(Stack* S) { if (S->top == -1) { printf("空的\n"); return 1; } else { return 0; } } //进栈/压栈 int pushStack(Stack* S,Elemtype e) { if (S->top >= MAXSIZE - 1) { printf("满了\n"); return 0; } S->top++; S->data[S->top] = e; return 1; } //出栈 int pop(Stack* S, Elemtype* e) { if (S->top >= MAXSIZE - 1) { printf("满了\n"); return 0; } *e = S->data[S->top]; S->top--; return 1; } //获取栈顶元素 int get_top(Stack* S, Elemtype* e) { if (S->top == -1) { printf("空的\n"); return 0; } *e = S->data[S->top]; return 1; } int main() { Stack S; initstack(&S); pushStack(&S,10); pushStack(&S,20); pushStack(&S,30); Elemtype e; pop(&S, &e); printf("%d\n", e); get_top(&S, &e); printf("%d\n", e); return 0; } //动态内存分配定义和初始化栈 #include<stdlib.h> #define MAXSIZE 100 typedef int Elemtype; typedef struct stack { Elemtype* data; int top; }Stack; Stack* initstack(Stack* S) { Stack* S = (Stack*)malloc(sizeof(Stack)); S->data = (Elemtype*)malloc(sizeof(Elemtype)*MAXSIZE); S->top = -1; return S; }

链式结构

#define _CRT_SECURE_NO_WARNINGS 1 //栈的链式结构 #include<stdio.h> #include<stdlib.h> typedef int Elemtype; #define MAXSIZE 100 //定义栈 typedef struct stack { Elemtype data; struct stack* Next;//栈顶 }Stack; //初始化栈 Stack* initstack() { Stack* S = (Stack*)malloc(sizeof(Stack)); S->data = 0; S->Next = NULL; return S; } //判断栈是否为空 int isEmpty(Stack* S) { if (S->Next == NULL) { printf("空的\n"); return 1; } else { return 0; } } //进展/压栈(相当于头插法,链式结构的栈只能头插法不能尾插法) int push(Stack* S, Elemtype e) { Stack* P = (Stack*)malloc(sizeof(Stack)); P->data = e; P->Next = S->Next; S->Next = P; return 1; } //出栈 int pop(Stack* S, Elemtype* e) { if (S->Next == NULL) { printf("空的\n"); return 0; } *e = S->Next->data; Stack* Q = S->Next; S->Next = Q->Next; free(Q); return 1; } //获取栈顶元素 int get_top(Stack* S, Elemtype* e) { if (S->Next == NULL) { printf("空的\n"); return 0; } *e = S->Next->data; return 1; } int main() { Stack* S = initstack(); isEmpty(S); push(S, 10); push(S, 20); push(S, 30); push(S, 40); Elemtype e; pop(S, &e); printf("%d\n", e); get_top(S, &e); printf("%d\n", e); return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/9 20:05:55

Wan2.2-T2V-A14B在地震断层错动模拟中的地质力学还原

Wan2.2-T2V-A14B在地震断层错动模拟中的地质力学还原 想象一下&#xff0c;地质学家只需输入一段专业描述&#xff1a;“龙门山断裂带北段发生Mw 7.9级逆冲型地震&#xff0c;上盘抬升5米&#xff0c;破裂以3 km/s速度向北传播”&#xff0c;几秒钟后&#xff0c;一段写实风格…

作者头像 李华
网站建设 2026/1/12 1:53:10

先整个三相LC滤波的Simulink模型框架出来——三相全桥逆变器接LC滤波,后边挂个电网。重点在于怎么让并网电流波形干净,THD控制在5%以内

三相LC滤波无源逆变电路仿真 simulink仿真 开关控制调节负载大小&#xff0c;保证并网电流THD<5% 下图并网电流波形 运行性能好 THD<5% 具备很好的学习性和参考价值逆变桥用Universal Bridge模块&#xff0c;记得把二极管参数里的Ron改成0.001Ω&#xff0c;不然仿真结…

作者头像 李华
网站建设 2026/1/8 7:57:33

了解学习K8S-HPA水平扩缩容

一、 HPA解决的问题HPA全称是 Horizontal Pod Autoscaler&#xff0c;也就是对k8s的workload的副本数进行自动水平扩缩容(scale)机制&#xff0c;也是k8s里使用需求最广泛的一种Autoscaler机制&#xff0c;在开始详细介绍HPA之前&#xff0c;先简单梳理下k8s autoscale的整个大…

作者头像 李华
网站建设 2026/1/4 22:04:05

基于单片机倒数计数器(LCD,独立按键)系统Proteus仿真(含全部资料)

全套资料包含&#xff1a;Proteus仿真源文件keil C语言源程序AD原理图流程图元器件清单说明书等 资料下载&#xff1a;↓↓↓ 通过网盘分享的文件&#xff1a;资料分享 链接: 百度网盘 请输入提取码 提取码: tgnu 目录 资料下载&#xff1a; Proteus仿真功能 项目文件资料…

作者头像 李华
网站建设 2026/1/11 13:31:30

[SAP MM] 采购订单自动生成

总结:要实现采购订单自动生成&#xff0c;需要配置以下选项① 对应的供应商主数据需添加“自动采购订单”标志② 对应的物料主数据需添加“自动采购订单”标志③ 采购申请已经分配货源步骤一&#xff1a;使用事务码BP设置供应商勾选"自动采购订单"步骤二&#xff1a;…

作者头像 李华
网站建设 2026/1/3 17:16:19

Wan2.2-T2V-A14B能否生成符合IEC标准的电气安全培训视频

Wan2.2-T2V-A14B能否生成符合IEC标准的电气安全培训视频 在现代工业环境中&#xff0c;电气安全事故仍是企业面临的主要风险之一。每年因操作不规范、培训不到位导致的电击、电弧烧伤甚至火灾事故屡见不鲜。国际电工委员会&#xff08;IEC&#xff09;为此制定了包括 IEC 60364…

作者头像 李华