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

家庭网站建设建设网站需要什么人员

家庭网站建设,建设网站需要什么人员,企业公司网页设计方案,公司网站运营维护单位目录 顺序栈 结构 初始化一个空顺序栈 压栈 出栈 例子 十进制转八进制 链式栈 管理结构体的定义 初始化 压栈 出栈 顺序栈 顺序栈的实现#xff0c;主要就是定义一块连续的内存来存放这些栈元素#xff0c;同时为了方便管理#xff0c; 再定义一个整数变量来代表…目录 顺序栈 结构 初始化一个空顺序栈 压栈 出栈 例子 十进制转八进制 链式栈 管理结构体的定义 初始化 压栈 出栈 顺序栈 顺序栈的实现主要就是定义一块连续的内存来存放这些栈元素同时为了方便管理 再定义一个整数变量来代表当前栈顶元素在此连续内存中的偏移量这样就可以很方便地知 道栈的状态和当前栈顶元素的位置便于压栈和出栈操作。将栈内存地址和栈顶元素偏移量 放在一起形成一个专门用来管理顺序栈的结构体我们称之为管理结构体 结构 struct sequent_stack // 栈的管理结构体 {int *stack; // 用 stack 指向一块连续的内存来存储栈元素int size; // size 保存了该顺序栈的总大小int top; // 用 top 来指示栈顶元素的偏移量 }; 初始化一个空顺序栈 一个空栈意味着栈中 没有元素首先将 stack 指向的内存清零其次更重要的是将 top 置为-1同时规定-1 为 空栈的标志这么做的好处是将来压栈第一个元素之后立即将 top 加 1 就会得到 0 而第一个元素就放在 stack 所指向的内存的开端处偏移量刚好为 0 struct sequent_stack *init_stack(int size) // 参数 size 表明空栈的初始大小 {struct sequent_stack *s;s malloc(sizeof(struct seqent_stack)); // 申请栈管理结构体if(s ! NULL){s-stack calloc(size, sizeof(int)); // 申请栈空间并由 stack 指向s-size size;s-top -1; // 将栈顶偏移量置为-1代表空栈}return s; } 压栈 假设栈中已有一些元素压栈的第一步首先要判 断栈是否已满如果已满就要考虑扩充栈空间或者直接出错返回如果未满则需要将新的 栈顶元素堆叠到原栈顶之上 bool stack_full(struct sequent_stack *s) {return s-top s-size-1; // 判断栈是否已满 } bool push(struct sequent_stack *s, int data) {if(stack_full(s)) // 如果栈已满则出错返回return false;s-top;s-stack[s-top] data;return true; } 出栈 出栈之前需要判断栈是否为空 bool stack_empty(struct sequent_stack *s) {return s-top -1; // 判断栈是否为空 } bool pop(struct sequent_stack *s, int *p) // p 指向存放栈顶元素的内存 {if(stack_empty(s)) // 如果栈为空则出错返回return false;*p s-stack[s-top];s-top--;return true; } 例子 十进制转八进制 int main(void) {struct sequent_stack *s;s init_stack(10); // 初始化一个具有 10 个元素空间的顺序栈int n;scanf(%d, n); // 让用户输入一个需要转换的十进制数while(n 0){push(s, n%8); // 使用短除法将余数统统压栈n / 8;}int m;while(!stack_empty(s)) // 只要栈不为空就继续循环{pop(s, m); // 出栈并打印出来printf(%d, m);}printf(\n);return 0; }链式栈 对于链式栈而言同样也需要一系列基本操作初始化、压栈、出栈、判断是否为空、 判断是否已满等等。首先初始化一个空栈意味着使得 top 指向 NULL而 size 记为 0 管理结构体的定义 struct node // 栈节点结构体 {int data;struct node *next; }; struct linked_stack // 栈管理结构体 {struct node *top;int size; }; 初始化 struct linked_stack *init_stack(void) {struct linked_stack *s;s malloc(sizeof(struct linked_stack)); // 申请一个管理结构体if(s ! NULL){s-top NULL; // j 将栈置空s-size 0;}return s; } 压栈 压栈首先需要一个新节点然后 将新的节点的 next 指针指向原来的栈顶再让 top 指针指向该新的栈顶元素即可 创建新结点 struct node *new_node(int data) // 创建一个新的节点 {struct node *new;new malloc(sizeof(struct node));if(new ! NULL){new-data data;new-next NULL;}return new; } 将新节点 new 压栈 bool push(struct linked_stack *s, struct node *new) // 将新节点 new 压栈 {if(s NULL || new NULL)return false;new-next s-top; // 第①步见上图s-top new; // 第②步s-size;return true; } 出栈 对于出栈来说首先要判断栈是否为空如果不为空则先要用一个指针 tmp 来保存 原栈顶元素的地址然后返回栈顶元素再将 top 指针指向下一个元素最后要注意释放 tmp 所指向的原栈顶元素的内存空间 bool pop(struct linked_stack *s, int *p) {if(s NULL || p NULL || stack_empty(s))return false;struct node *tmp s-top; // 第①步*p tmp-data; // 第②步s-top s-top-next; // 第③步free(tmp); // 第④步s-size--;return true; }
http://www.pierceye.com/news/664584/

相关文章:

  • 新手如何注册网站域名做 理财网站有哪些
  • 南宁快速建站模板企业网站的开发与应用
  • 网站运营适合什么样的人做企业宣传及介绍ppt
  • 怎么样网站开源小升初在线做试卷的网站
  • 中国建设银行章丘支行网站网站排版设计欣赏
  • 儿童摄影网站建设专业做网站制作自助建站系统
  • 注册做网站的公司有哪些wordpress 4.1 下载
  • 用ps做美食网站一个网站多少钱?
  • 网站建设 试题揭阳专业做网站公司
  • 手机上怎么创建自己的网站河南企业网站优化
  • 定陶区城乡和住房建设局网站新手怎么做网站
  • 工商银行与建设银行网站对比石嘴山网站seo
  • seo快速建站自学程序员的步骤
  • 做旅行网站的依据及意义如何制作自己想要的图片
  • 电子商务网站怎么做网站建设企业建站哪家好?来这里看看
  • 网站备案电话号码购物商城网站建设方案
  • 手机商城系统徐州seo计费管理
  • 西安网站公司哪家好信息推广的方式有哪些
  • 网站开发注意的事项商丘网站制作软件
  • 51zwd一起做网站广州广东省网站备案查询
  • 如何生成一个网站自己弄公司网站
  • 企业信用信息查询网官网孝感网站seo
  • 中淼建设工程有限公司网站分类用wordpress
  • 腾讯建设网站首页做销售网站
  • 推广引流网站聚名网注册
  • 原来做网站后来跑国外了多伦多网站建设多少钱
  • 手机建站平台做母婴网站设计思路
  • 免费个人手机网站九八智能建站
  • 中山网站备案如何做购物网站
  • 常见的简单的网站制作建设网站的好公司