网站建设信息发布平台深圳正规网站建设

张小明 2026/1/9 8:42:56
网站建设信息发布平台,深圳正规网站建设,山东省双体系建设网站,网站导航html1.栈 1.1栈的概念及结构 1.1.1概念 栈#xff1a;一种特殊的线性表#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插和删除操作的一端称为栈顶#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO#xff08;LastInFirstOut#xff09;的则。…1.栈1.1栈的概念及结构1.1.1概念栈一种特殊的线性表其只允许在固定的一端进行插入和删除元素操作。进行数据插和删除操作的一端称为栈顶另一端称为栈底。栈中的数据元素遵守后进先出LIFOLastInFirstOut的则。压栈栈的插入操作叫做进栈/压栈/入栈入数据在栈顶。出栈栈的删除操作叫做出栈。出数据也在栈顶。1.1.2结构数组栈链式栈如果用尾做栈顶尾插尾删要设计成双向链表否则删除数据效率低如果用头做栈顶头插头删就可以设计成单链表两种都可以非要选一种数组栈结构稍微好一点。1.2接口函数//要改变结构体的内容 //传结构体的指针 void StackInit(ST* ps); void StackDestory(ST* ps); void StackPush(ST* ps,STDataType x); void StackPop(ST* ps); STDataType StackTop(ST* ps); //取栈顶的数据 int StackSize(ST* ps); //栈中元素个数 bool StackEmpty(ST* ps); //判断栈是否为空1.3详细代码#pragma once #includestdio.h #includestdlib.h #includeassert.h #includestdbool.h typedef int STDataType; typedef struct Stack { STDataType* a; int top;//栈顶 int capacity; }ST; void StackInit(ST* ps) { assert(ps); ps-a NULL; ps-top 0; //初始化时top给的是0 // 意味着top指向栈顶数据的下一个 // ps-top-1; //初始化时top给的是 - 1 // 意味着top指向栈顶数据 ps-capacity 0; } void StackDestory(ST* ps) { assert(ps); free(ps-a); ps-a NULL; ps-top 0; ps-capacity 0; } void StackPush(ST* ps, STDataType x) { assert(ps); if (ps-top ps-capacity) { int newCapacity ps-capacity 0 ? 4 : ps-capacity * 2; STDataType* tmp (STDataType*)realloc(ps-a, sizeof(STDataType) * newCapacity); if (tmp NULL) { printf(realloc fail\n); exit(-1); } ps-a tmp; ps-capacity newCapacity; } ps-a[ps-top] x; ps-top; } void StackPop(ST* ps) { assert(ps); assert(ps-top 0); //栈不为空才能删 ps-top--; } STDataType StackTop(ST* ps) { assert(ps); assert(ps-top 0); //栈不为空才能取栈顶元素 return ps-a[ps-top - 1]; } int StackSize(ST* ps) { assert(ps); return ps-top; } bool StackEmpty(ST* ps) { assert(ps); /* if (ps-top 0) return true; else return false; */ return ps-top 0; } void TestStack() { ST st; StackInit(st); StackPush(st, 1); StackPush(st, 2); StackPush(st, 3); StackPush(st, 4); //遍历栈中的数据 while (!StackEmpty(st)) { printf(%d , StackTop(st)); StackPop(st); } StackDestory(st); } int main() { TestStack(); return 0; }
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

有哪些好点的单页网站网站建设那个公司好

公众号:cpp手艺人 QWebEngine 是什么?与 Chromium 的关系解析 1. 概述:QWebEngine 是什么? QWebEngine 是 Qt 框架中用于嵌入现代 Web 内容的核心模块,自 Qt 5.4(2014年)起正式引入,取代了旧版的 QtWebKit。它基于 Chromium 项目构建,为 Qt 应用程序提供高性能、安…

张小明 2026/1/8 3:45:32 网站建设

山东seo第一宜昌做网站优化

魔兽争霸III新系统完美兼容:WarcraftHelper完全攻略 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸III在新版Windows系统上…

张小明 2026/1/7 10:05:20 网站建设

现在还有用dw做网站泰安可以做网站的公司

GODEL终极指南:用目标导向对话模型打造智能交互的5大秘诀 【免费下载链接】GODEL Large-scale pretrained models for goal-directed dialog 项目地址: https://gitcode.com/gh_mirrors/go/GODEL 在人工智能对话系统快速发展的今天,微软推出的GOD…

张小明 2026/1/7 6:00:03 网站建设

网站制作免费软件wordpress wpjam

【收藏必看】程序员入门指南:Kali Linux安装配置与网络安全学习路线详解 文章详细介绍了Kali Linux系统的下载、安装及配置方法,包括虚拟机安装、root权限修改、SSH设置等步骤,特别适合新手入门。同时分享了网络安全学习路线、教程资源、实战…

张小明 2026/1/7 15:55:03 网站建设

建网站用哪个好网站开发英语词汇

目录简介安装简介 Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,可以使JavaScript运行在服务器端 JS代码运行在哪里? 1 浏览器 2 nodejs 安装 在如下网址下载 https://nodejs.org/en基本上一路next即可,最好修改一下安装路径…

张小明 2026/1/7 8:43:31 网站建设

做网站考什么赚钱如何做营销型手机网站优化

Typst字体兼容性:5个常见问题排查与解决方案 【免费下载链接】typst A new markup-based typesetting system that is powerful and easy to learn. 项目地址: https://gitcode.com/GitHub_Trending/ty/typst 你是否在使用Typst排版时遇到过字体显示异常、符…

张小明 2026/1/7 19:37:18 网站建设