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

品牌网站制作报价表页面设计标准规范

品牌网站制作报价表,页面设计标准规范,系统网站界面设计,做电影网站涉及的侵权问题文章转自编程珠玑#xff0c;作者#xff1a;守望先生前言栈是一种应用广泛的数据结构#xff0c;例如函数的调用就需要使用栈#xff0c;其实我们在介绍《栈的操作栈的常见操作有出栈(POP)#xff0c;从栈中弹出一个元素#xff1b;入栈(PUSH)#xff0c;将一个元素压入… 文章转自编程珠玑作者守望先生前言栈是一种应用广泛的数据结构例如函数的调用就需要使用栈其实我们在介绍《栈的操作栈的常见操作有出栈(POP)从栈中弹出一个元素入栈(PUSH)将一个元素压入栈中访问栈顶元素(TOP)判断栈是否为空等。栈的实现栈是较容易实现的抽象数据结构之一。我们可以选择数组或者链表来实现它们各有特点前者容量有限且固定但操作简单而后者容量理论上不受限但是操作并不如数组方便每次入栈要进行内存申请出栈要释放内存稍有不慎便造成内存泄露。本文对两种实现都做介绍。数组实现栈用数组实现栈是比较容易的。这个时候的栈其实更像是访问受限的数组数组可以通过下标访问查找插入等但是栈只能从栈顶或者说数组的末尾进行操作。我们只需要一个指针记录栈顶即可。有人可能问了既然这里栈是访问受限的数组为什么不直接使用数组呢所谓能力越大责任越大而你暴露的越多风险也越大就是如此。我们来看一下数组实现栈的时候栈的操作都是怎么实现的呢定义栈用数组实现栈时是很容易定义的只要定一个固定长度的数组即可然后使用一个指针或者数组下标标记栈顶topOfStack栈为空时它是-1#define STACK_SIZE 64 /*栈大小*/ #define TOP_OF_STACK -1 /*栈顶位置*/ typedef int ElementType /*栈元素类型*/ typedef struct StackInfo {int topOfStack; /*记录栈顶位置*/ElementType stack[STACK_SIZE]; /*栈数组也可以使用动态数组实现*/ }StackInfo_st;/*创建栈*/ StackInfo_st stack; stack.topOfStack  TOP_OF_STACK; 入栈入栈操作也很简单只需要先将topOfStack加1然后将元素放入数组即可。当然特别要注意检查此时栈是否已满。将1入栈此时topOfStack 0topOfStack1代码实现#define SUCCESS 0 #define FAILURE -1 /*入栈0表示成功非0表示出错*/ int stack_push(StackInfo_st *s, ElementType value) {if(stack_is_full(s))return FAILURE;/*先增加topOfStack再赋值*/s-topOfStack;s-stack[s-topOfStack]  value;return SUCCESS; } 出栈或访问栈顶元素与入栈相反先访问元素然后将topOfStack减1但是此时要注意检查栈是否已空。访问栈顶元素可直接使用下标访问而不用将topOfStack减1。/*出栈*/ int stack_pop(StackInfo_st *s,ElementType *value) {/*首先判断栈是否为空*/if(stack_is_empty(s))return FAILURE;*value  s-stack[s-topOfStack];s-topOfStack--;return SUCCESS; } /*访问栈顶元素*/ int stack_top(StackInfo_st *s,ElementType *value); {/*首先判断栈是否为空*/if(stack_is_empty(s))return FAILURE;*value  s-stack[s-topOfStack];return SUCCESS; } 判断栈是否满只要判断topOfStack与数组大小-1的大小即可。/*判断栈是否已满满返回1未满返回0*/ int stack_is_full(StackInfo_st *s) {return s-topOfStack  STACK_SIZE - 1; } 判断栈是否为空只需要判断topOfStack是否小于等于-1即可。/*判断栈是否为空空返回1非空返回0*/ int stack_is_empty(StackInfo_st *s) {return s-topOfStack   - 1; } 完整可运行代码代码较长可点击阅读原文查看或访问链表实现栈与数组实现栈不一样的地方是链式栈可以动态扩容基本没有长度限制受限于内存。另外它在入栈以及出栈的时候需要申请或者释放内存。创建栈创建栈很容易只需要声明一个头指针即可它的next指针指向栈顶初始时为空/*定义栈结构*/ typedef struct StackInfo {ElementType value; /*记录栈顶位置*/struct StackInfo *next; /*指向栈的下一个元素*/ }StackInfo_st;/*创建栈外部释放内存*/ StackInfo_st *createStack(void) {StackInfo_st *stack  malloc(sizeof(StackInfo_st));if(NULL  stack){printf(malloc failed\n);return NULL;} /*stack-next为栈顶指针*/stack-next  NULL;return stack; } 入栈入栈只需要为新的元素申请内存空间并将栈顶指针指向新的节点即可。入栈操作/*入栈0表示成功非0表示出错*/ int stack_push(StackInfo_st *s,ElementType value) {StackInfo_st *temp  malloc(sizeof(StackInfo_st));if(NULL  temp){printf(malloc failed\n);return FAILURE;}/*将新的节点添加s-next前使得s-next永远指向栈顶*/temp-value  value;temp-next  s-next;s-next  temp;return SUCCESS; } 出栈或访问栈顶元素出栈时将栈顶指针指向下下个节点返回元素值并释放栈顶指针下个节点的内存。而访问栈顶元素只需要返回栈顶指针指向节点的元素值即可。出栈/*出栈*/ int stack_pop(StackInfo_st *s,ElementType *value) {/*首先判断栈是否为空*/if(stack_is_empty(s))return FAILURE;/*找出栈顶元素*/*value  s-next-value;StackInfo_st *temp  s-next;s-next  s-next-next;/*释放栈顶节点内存*/free(temp);temp  NULL;return SUCCESS; } /*访问栈顶元素*/ int stack_top(StackInfo_st *s,ElementType *value) {/*首先判断栈是否为空*/if(stack_is_empty(s))return FAILURE;*value  s-next-value;return SUCCESS; } 判断栈是否为空判断栈空也很简单只需要判断栈顶指针是否为空即可。/*判断栈是否为空空返回1未空返回0*/ int stack_is_empty(StackInfo_st *s) {/*栈顶指针为空则栈为空*/return s-next  NULL; } 完整可运行代码代码较长可点击阅读原文查看或访问总结本文介绍了栈的基本操作以及栈的基本实现。后面将会介绍一些栈的具体应用。扫码或长按关注回复「 加群 」进入技术群聊
http://www.zqtcl.cn/news/917997/

相关文章:

  • 做网站创业故事好看大方的企业网站源码.net
  • 做家常菜哪个网站最好香蜜湖附近网站建设
  • 网站index.php被修改seo网络推广经理招聘
  • 南京做网站联系南京乐识网站建设培训福州
  • 比较冷门的视频网站做搬运网站建设 分析
  • 网站开发实习计划模板有做数学题的网站吗
  • 汕头 网站网页设计图片轮播切换
  • 免费ui网站美橙网站设计
  • 网站建设 海口哪里有网站设计公司
  • 广西建设监理协会官方网站网站建设的需求文档
  • 网站后台怎么做飘窗wordpress add_theme_page
  • 网站建设哪家信誉好网店美工具体要求
  • 网站管理建设工作wordpress 媒体库 直链
  • 网站备案是域名备案还是空间备案wordpress注册数学验证
  • 网站的种类有哪些怎么做代理人金沙网站
  • 西城顺德网站建设网站开发网上教学
  • 公司网站成本百度制作公司网页
  • 政务网站建设情况汇报网线制作的标准
  • 天空网站开发者wordpress 用户登陆后跳转到首页
  • 网站没有内容可以备案吗哪家网站设计好
  • 承德网站建设价格app 网站运营ppt
  • 外贸建站 服务器山西孝义网站开发
  • 廊坊网站建设开发全网整合营销公司
  • html网站建设流程网站模板二次开发
  • wordpress建站需要学什么意思sem扫描电镜
  • 总结 设网站门户网站开发一般多少钱
  • 政务网站无障碍建设wordpress虚拟资源主题
  • 确山专业网站建设百度一下一下你就知道
  • 设计类网站排名优秀广告案例
  • 自己做网站如何挣钱天津南开做网站