怎么用C语言实现链式栈
发表于:2024-11-29 作者:千家信息网编辑
千家信息网最后更新 2024年11月29日,这篇文章给大家分享的是有关怎么用C语言实现链式栈的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。堆栈的基本概念堆栈是只能在一端增删元素的表结构,该位置称为栈顶堆栈的基本运算是
千家信息网最后更新 2024年11月29日怎么用C语言实现链式栈
这篇文章给大家分享的是有关怎么用C语言实现链式栈的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
堆栈的基本概念
堆栈是只能在一端增删元素的表结构,该位置称为栈顶堆栈的基本运算是压入和弹出,前者相当于插入,而后者则是删除最后插入的元素,形成后进先出的运算规则最后插入的元素在被弹出之前可以作为栈顶被外界访问从空栈中弹出,或向满栈中压入,都被认为是一种错误
常见的栈有顺序栈和链式栈
顺序栈
链式栈
- 链式栈的C代码实现
#include#include /*节点的结构*/typedef struct node { struct node* pnode; int data;}node_t;/*栈的结构*/typedef struct stack { struct node* top;//栈顶指针 int size;//栈中数据个数}stack_t;/*初始化栈*/void stack_init(stack_t* stk){ stk->top = NULL; stk->size = 0;}/*压栈操作*/void stack_push(stack_t* stk, int data){ node_t *node = malloc(sizeof(node_t)); node->data = data; node->pnode = stk->top; stk->top = node; stk->size++;}/*弹栈:将栈中数据弹入buf*/void stack_pop(stack_t* stk, int buf[], int size){ for(int i = 0; i < size; ++i) { if(stk->size == 0) { printf("栈中数据已弹净!\n"); break; } node_t* temp = stk->top; buf[i] = stk->top->data; stk->top = stk->top->pnode; stk->size--; free(temp); } }/*删除整个栈*/void stack_deinit(stack_t* stk){ while(stk->size || stk->top) { node_t* temp = stk->top; stk->top = stk->top->pnode; stk->size--; free(temp); } }/*从栈顶自上而下打印栈中所有数据*/void print_stack(stack_t* stk){ if(stk->size == 0) { printf("栈中无数据!\n"); } for(node_t* node = stk->top; node; node = node->pnode) { printf("%d ",node->data); } printf("\n");}/*测试代码*/#define N 30int main(void){ stack_t stack; int buf[N]; stack_init(&stack); printf("开始压栈!\n"); for(int i = 0; i < N; ++i) { stack_push(&stack, i); } print_stack(&stack);//打印栈中数据 //stack_deinit(&stack); printf("开始弹栈!\n"); stack_pop(&stack, buf, N);//弹栈 print_stack(&stack); printf("取出的数据为:"); for(int i = 0; i < sizeof(buf) / sizeof(buf[0]); ++i) { printf("%d ", buf[i]); } printf("\n"); return 0;}
代码运行效果
感谢各位的阅读!关于"怎么用C语言实现链式栈"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
数据
链式
代码
堆栈
结构
语言
元素
内容
更多
篇文章
顺序
运算
不错
实用
一端
个数
中压
位置
后进
外界
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络技术信息处理属于什么专业
1.8.8服务器地址
侠客营销软件开发特训+下载
网络安全ppt演讲台词
我的世界服务器统计信息
虹口区企业网络技术服务价目
mysql 服务器硬件
百度云 服务器繁忙
乌市软件开发
怎样查询服务器端口号
长沙非比网络技术有限公司
数据库归档清理
银河系软件开发公司
基于数据库的数学模型
为什么要用云服务器
大智慧实时读取5分钟数据库
维视图像工业相机软件开发
mysql服务器集群
国内服务器选哪里
帝国数据库文件
网链互联网科技有限公司
活动硬件服务器
承接石器服务器架设
安全的互联网服务器数量
珠海市信息网络安全协会
sim卡无法接通激活服务器
网络安全需要学web么
同济大学教授谈网络安全
网络安全示范试点申报范文
浙江糖视软件开发有限公司