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

定制网站开发哪家强网页界面设计实验报告

定制网站开发哪家强,网页界面设计实验报告,怎么让自己的网站被百度收录,网页设计实验报告结果分析提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、栈二、C语言实现1.声明代码2.实现增删查改代码3.测试代码 总结 前言 栈(Stack)是计算机科学中一种常见的数据结构,它是…

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、栈
  • 二、C语言实现
    • 1.声明代码
    • 2.实现增删查改代码
    • 3.测试代码
  • 总结


前言

栈(Stack)是计算机科学中一种常见的数据结构,它是一种线性数据结构,具有特定的添加和删除元素的方式,遵循"先进后出"(Last In, First Out,LIFO)原则。栈通常用于管理函数调用、表达式求值、内存管理等多个计算机科学领域。


提示:以下是本篇文章正文内容,下面案例可供参考

一、栈

栈是一种特殊的线性表,只允许在固定的一端进行插入和删除元素操作,进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守**先进后出LIFO(Last In First Out)**的原则。
压栈:栈的插入操作叫做进行入栈、进栈、压栈,入数据在栈顶;
出栈:栈的删除操作叫做出栈,出数据也在栈顶。
在这里插入图片描述栈的实现一般可以使用数组或者链表,相对而言数组的结构实现更优一些,因为数组在尾上插数据的代价比较小。

二、C语言实现

1.声明代码

代码如下(示例):

#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <assert.h>typedef int STDatatype;
// 数组栈,数组尾部为栈顶,数组头为栈底typedef struct Stack
{STDatatype* a;int capacity;int top;
}ST;void StackInit(ST* ps); //初始化栈
void StackDestroy(ST* ps); // 销毁栈
void StackPush(ST* ps, STDatatype x); //入栈
void StackPop(ST* ps); //出栈
STDatatype StackTop(ST* ps); //获取栈顶元素 bool StackEmpty(ST* ps); // 判断栈是否为空
int StackSize(ST* ps); //栈中元素个数

2.实现增删查改代码

代码如下(示例):

#include "Stack.h"void StackInit(ST* ps)
{assert(ps); //断言检查ps->a = (ST*)malloc(sizeof(ST) * 4); //开辟空间if (ps->a == NULL) //空间申请失败{perror("malloc fail....");exit(-1);}ps->capacity = 0;ps->top = 0;
}void StackDestroy(ST* ps)
{assert(ps);free(ps); //释放空间ps->a = NULL;ps->capacity = 0;ps->top = 0;
}void StackPush(ST* ps, STDatatype x) //入栈
{assert(ps);if (ps->top+1 == ps->capacity) // 如果空间已经满了{STDatatype* tmp = (STDatatype*)realloc(ps->a, ps->capacity * 2 * sizeof(STDatatype)); //扩容if (ps->a == NULL){perror("malloc fail...");exit(-1);}ps->a = tmp; //ps要指向新开辟的空间tmpps->capacity *= 2; // ps的容量变为原来的2倍}ps->top++;ps->a[ps->top] = x;
}void StackPop(ST* ps) //出栈
{assert(ps);ps->top--; //指针前移
}STDatatype StackTop(ST* ps) //获取栈顶元素
{assert(ps);assert(!StackEmpty(ps)); //断言栈不为空return ps->a[ps->top-1]; //注意:栈顶元素为top的前一个元素
}bool StackEmpty(ST* ps) // 判断栈是否为空
{assert(ps);if (ps->top == 0){return true;}else{return false;}
}int StackSize(ST* ps) //栈中元素个数
{assert(ps);return ps->top; //top为最后一个数据的下一个位置
}

3.测试代码

代码如下(示例):

#include "Stack.h"//栈的实现一般可以使用数组或者链表,相对而言数组的结构实现更优一些,
// 因为数组在尾上插数据的代价比较小。void Stack_Test1()
{ST st;StackInit(&st); //初始化结构体,要把结构体的地址传过去StackPush(&st, 1);StackPush(&st, 2);StackPush(&st, 3);StackPush(&st, 4);StackPush(&st, 5);int size = StackSize(&st);printf("st's size:%d", size);StackDestroy(&st);}int main()
{Stack_Test1();return 0;
}

总结

栈适用于需要后进先出操作的情况,例如函数调用和操作历史记录。

http://www.yayakq.cn/news/769511/

相关文章:

  • 怎么做网站的关键词wordpress发音
  • 做网站数据库怎么整lnmp wordpress 登陆
  • 大连建设公司网站做网站的上市公司有哪些
  • 网站备案申请中国建设招标网?官方网站
  • 响应式网站模板 视差在线做爰直播网站
  • 做网站哪种域名好记呼和浩特网站优化公司
  • .net网站开发环境站长工具怎么关闭
  • 网站后期维护费用多少wordpress最快的电商主题
  • 做网站栏目是什么意思智慧团建网址
  • 建网站几个按钮哪个搜索引擎能搜敏感内容
  • 德清网站设计网站开发软件选择
  • 随州网站建设推荐外贸网站设计注意事项
  • 昆明做网站优化推广普通话手抄报模板
  • 淘宝客都在什么平台建网站电子商务网站开发案例
  • 河北网站建设方案详细中企动力做的网站被百度屏蔽
  • 二级单位网站建设中文wordpress 主题
  • 蒙古文门户网站建设督导网站建设 成都今网科技
  • 做ppt的模板的网站微信绑定网站
  • 建网站公司汽车六万公里是否累变速箱油制作app的费用
  • 宁波专业的网站搭建公司电商怎么开始做
  • 企业网站优化服务主要围绕哪些要素wordpress文章在那个文件夹
  • 织梦网站导航固定沈阳做网站比较好的公司
  • 百度网站关键词和网址北京官方网站建设
  • 做网站PV山东临沂市建筑模板生产厂家
  • 视频网站是怎么做权限管理的河北省招投标信息网
  • 房屋设计在线设计网站如何做家教网站
  • php网站后台上传图片有没有推荐到首页的功能企业信用信息公开网查询系统
  • 湖北住房城乡建设厅网站海外推广代理商
  • 网站标题的优化适合30岁短期培训班
  • 承德建站公司自己做的网站怎么连接计算机