当前位置: 首页 > news >正文

安徽国华建设工程项目管理有限公司网站做qq图片的网站吗

安徽国华建设工程项目管理有限公司网站,做qq图片的网站吗,做网站前端有前途么,中国反钓鱼网站联盟1.栈的概念 栈#xff1a;一种特殊的线性表#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO#xff08;Last In First Out#xff09;的原则。 压栈一种特殊的线性表其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶另一端称为栈底。栈中的数据元素遵守后进先出LIFOLast In First Out的原则。         压栈栈的插入操作叫做进栈/压栈/入栈入数据在栈顶。         出栈栈的删除操作叫做出栈。出数据也在栈顶 2.栈结构的特点 后进先出LIFO栈的最显著特点是后进先出的数据访问方式。也就是说最后添加到栈中的元素会首先被移除而最先添加的元素会被保留在栈的底部直到后续被移除。限制性访问栈通常只允许在栈顶进行操作包括添加元素入栈和移除元素出栈。这种限制性访问确保了数据的一致性和有效性因为只有最顶端的元素才是可见和可访问的。基于顺序存储或链式存储栈可以基于顺序存储如数组和顺序表或链式存储如链表实现。在顺序存储中栈的元素被连续存储在内存中的一个连续区域并且栈顶的位置可以随着入栈和出栈操作进行动态调整。而在链式存储中每个元素都有一个指向下一个元素的指针形成了一个链式结构。常见应用栈在计算机科学中有着广泛的应用包括函数调用栈、表达式求值、语法分析、内存管理等方面。在算法和数据结构中栈也是解决许多问题的重要工具。内存管理栈内存储在程序的运行时栈空间中由编译器或解释器负责管理。入栈和出栈操作通常比较高效并且不会导致内存碎片化。 总的来说栈是一种简单但功能强大的数据结构它的后进先出特性使其在许多领域都有着重要的应用。 栈结构通常是用顺序表来实现的如果学会了顺序表和链表再来实现栈结构就行显得简单的多。 3.栈的实现 3.1头文件的声明 #pragma once #includestdio.h #includestdlib.h #includeassert.h // 支持动态增长的栈 typedef int STDataType; typedef struct Stack {STDataType* _a; //栈空间int _top; // 栈顶int _capacity; // 容量 }Stack; void StackInit(Stack* ps);// 初始化栈 void StackPush(Stack* ps, STDataType data);// 入栈 void StackPop(Stack* ps);// 出栈 STDataType StackTop(Stack* ps);// 获取栈顶元素 int StackSize(Stack* ps);// 获取栈中有效元素个数 int StackEmpty(Stack* ps);// 检测栈是否为空 void StackDestroy(Stack* ps);// 销毁栈 3.2初始化栈 void StackInit(Stack* ps) {assert(ps);ps-_a NULL;ps-_top ps-_capacity 0; } 3.3入栈 void StackPush(Stack* ps, STDataType data) {assert(ps);if (ps-_top ps-_capacity){int dt ps-_capacity 0 ? 4 : ps-_capacity * 2;STDataType* pnew (STDataType*)realloc(ps-_a, sizeof(STDataType) * dt);//申请栈空间assert(pnew);ps-_a pnew;ps-_capacity dt;//更新空间大小}ps-_a[ps-_top] data;ps-_top; } 3.4出栈 void StackPop(Stack* ps) {assert(ps);assert(ps-_top);ps-_top--; } 3.5获取栈顶元素  STDataType StackTop(Stack* ps) {assert(ps);assert(ps-_top);ps-_top--;return ps-_a[ps-_top]; } 3.6判空  // 检测栈是否为空如果为空返回0结果如果不为空返回非零 int StackEmpty(Stack* ps) {assert(ps);return ps-_top 0 ? 1 : 0; } 3.7销毁栈  void StackDestroy(Stack* ps) {assert(ps);free(ps-_a);ps-_a NULL;ps-_top ps-_capacity 0; } 4.原码 Stack.h #pragma once #includestdio.h #includestdlib.h #includeassert.h // 支持动态增长的栈 typedef int STDataType; typedef struct Stack {STDataType* _a; //栈空间int _top; // 栈顶int _capacity; // 容量 }Stack; // 初始化栈 void StackInit(Stack* ps); // 入栈 void StackPush(Stack* ps, STDataType data); // 出栈 void StackPop(Stack* ps); // 获取栈顶元素 STDataType StackTop(Stack* ps); // 获取栈中有效元素个数 int StackSize(Stack* ps); // 检测栈是否为空如果为空返回非零结果如果不为空返回0 int StackEmpty(Stack* ps); // 销毁栈 void StackDestroy(Stack* ps); Stack.c #includeStack.h // 初始化栈 void StackInit(Stack* ps) {assert(ps);ps-_a NULL;ps-_top ps-_capacity 0; } // 入栈 void StackPush(Stack* ps, STDataType data) {assert(ps);if (ps-_top ps-_capacity){int dt ps-_capacity 0 ? 4 : ps-_capacity * 2;STDataType* pnew (STDataType*)realloc(ps-_a, sizeof(STDataType) * dt);//申请栈空间assert(pnew);ps-_a pnew;ps-_capacity dt;//更新空间大小}ps-_a[ps-_top] data;ps-_top; } // 出栈 void StackPop(Stack* ps) {assert(ps);assert(ps-_top);ps-_top--; } // 获取栈顶元素 STDataType StackTop(Stack* ps) {assert(ps);assert(ps-_top);ps-_top--;return ps-_a[ps-_top]; } // 获取栈中有效元素个数 int StackSize(Stack* ps) {assert(ps);return ps-_top; } // 检测栈是否为空如果为空返回0结果如果不为空返回非零 int StackEmpty(Stack* ps) {assert(ps);return ps-_top 0 ? 1 : 0; } // 销毁栈 void StackDestroy(Stack* ps) {assert(ps);free(ps-_a);ps-_a NULL;ps-_top ps-_capacity 0; } test.c #define _CRT_SECURE_NO_WARNINGS 1 #includeStack.h int main() {Stack pst;Stack* pr pst;// 初始化栈 StackInit(pr);StackPush(pr, 1);StackPush(pr, 2);StackPush(pr, 3);StackPush(pr, 4);StackPush(pr, 5);StackPush(pr, 6);StackPop(pr);while (!StackEmpty(pr)){printf(%d , StackTop(pr));}printf(\n%d, StackSize(pr));StackDestroy(pr);return 0; }
http://www.w-s-a.com/news/16621/

相关文章:

  • 徐州智能建站怎么做苏州建设网站首页
  • 网站支付功能报价wordpress主页透明
  • asia域名的网站宁波模板建站源码
  • 官网网站怎么做个人网站盈利
  • 青龙桥网站建设网站同时做竞价和优化可以
  • 沭阳建设网站婴儿辅食中企动力提供网站建设
  • 常州做网站的公司济宁网站建设seo
  • 用wordpress做企业网站视频教程韶关建设网站
  • 怎么做一个免费的网站云南网站设计选哪家
  • dw做六个页面的网站做网站运营有前途吗
  • 中级网站开发工程师 试题战地之王网站做任务
  • 广东东莞保安公司湖南 seo
  • 无锡网站策划公司如何零基础学编程
  • 金融网站如何做设计网站开发流程 文档
  • 用jsp做网站国内知名设计工作室
  • 一键搭建网站北京公司网站设计
  • 山东省城乡建设部网站网站营销单页怎么做
  • 中国移动视频网站建设百度统计官网
  • 网站实施过程网站上传视频怎么做
  • 网上书店网站建设实训总结嘉兴seo
  • 网站运行需求cos wordpress
  • 网络小说网站推广策划方案单位网站建设收费标准
  • 医院网站建设论证报告河源网站seo
  • 网站demo怎么做淘宝客网站一般用什么做的
  • 网站开发之美 pdf关键词查询优化
  • 可以建站的网站做一个网站美工多少钱
  • 怎么做网站专题互联网营销师报考费用
  • 淘宝导购网站怎么做上海数据开放网站建设
  • 广东网站建设怎么选2021个人网站盈利模式
  • 珠海网站建设的公司排名网站前端开发培训