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

网站开发需要准备什么材料官方百度app下载

网站开发需要准备什么材料,官方百度app下载,多语言网站一个域名,网站开发评审时间安排一、概念 栈是一种先进后出的数据结构。FILO(firt in late out) 逻辑结构:线性结构 二、存储结构: (一) 顺序存储 顺序栈 基于一个数组配合一个栈顶"指针(数组下标)–top" 顺序栈的本质就是对…

一、概念

栈是一种先进后出的数据结构。FILO(firt in late out)
逻辑结构:线性结构

二、存储结构:

(一) 顺序存储

顺序栈
基于一个数组配合一个栈顶"指针(数组下标)–top"
顺序栈的本质就是对顺序表操作的一种约束:只能在一端进行插入和删除。

操作:
创建
清空
销毁
入栈、压栈——判断栈满
出栈、弹栈——判断栈空
打印栈所有元素

(二)链式存储

1. 结构体定义

//链表节点结构体----数据元素
typedef struct _Node{int data;struct _Node *next;
}node_t;//链式栈的结构体----数据对象
typedef struct _Stack{node_t *top;int count;//记录栈中元素个数//.....其他属性信息
}stack_t;

2.创建栈表

(1)函数定义

int create_stack(stack_t **my_stack);

  1. 在内存中申请一块stack_t类型大小的空间存储栈的内容;
  2. 初始化栈的成员的数据:将count置0,top置NULL
(2)注意点
  1. 进入函数就需要判断传入的参数是否为NULL,为空退出函数
  2. 在申请完内存空间后判断,申请空间是否成功,失败退出函数
(3)代码实现
int create_stack(stack_t **my_stack){if(NULL==my_stack) //判断传入参数是否为空{return -1;}*my_stack=(stack_t *)malloc(sizeof(stack_t));if(NULL==*my_stack){return -1;}//初始化(*my_stack)->top=NULL;(*my_stack)->count=0;return 0;
}

3. 入栈

(1)函数定义

int push_stack(stack_t *my_stack, int data);

  1. 在内存中申请一块node_t类型大小的数据空间
  2. 进行头插
  3. count自加一
(2)注意点
  1. 需要检查传入参数是否为空,为空退出函数
  2. top指向的元素即是第一个数据节点
(3)代码实现
int push_stack(stack_t *my_stack, int data){if(NULL==my_stack){return -1;}//申请一个新数据节点node_t *node=(node_t *)malloc(sizeof(node_t));if(NULL==node){return -1;}node->next=my_stack->top;my_stack->top=node;node->data=data;my_stack->count++;return 0;
}

3. 出栈

(1)函数定义

int pop_stack(stack_t *my_stack, int *num);

  1. 头删
  2. count自减
(2)注意点
  1. 需要检查传入指针参数和*num是否为空,为空退出函数
  2. 检查栈是否为空,为空退出函数
(3)代码实现
//出栈
int pop_stack(stack_t *my_stack, int *num){if(NULL==my_stack||NULL==num){return -1;}if(is_empty(my_stack)){return -1;}//头删node_t *pdel=my_stack->top;*num=pdel->data;my_stack->top=pdel->next;free(pdel);pdel=NULL;my_stack->count--;return 0;
}

4. 判断栈是否为空

(1)函数定义

int is_empty(stack_t *my_stack);

(2)注意点
  1. 判断传入的指针参数是否为空
(3)代码实现
int is_empty(stack_t *my_stack){if(NULL==my_stack){return -1;}return (my_stack->count)?0:1; 
}

5. 清空栈

(1)函数定义

int clean_stack(stack_t *my_stack);

  1. 循环头删
  2. count置0
  3. 只要top的指向不为空,就一直循环
(2)注意点
  1. 入参合理性检查
  2. count不要忘记置0
(3)代码实现
int clean_stack(stack_t *my_stack){if(NULL==my_stack){return -1;}node_t *pdel=NULL;while(my_stack->top){pdel=my_stack->top;my_stack->top=pdel->next;free(pdel);}pdel=NULL;my_stack->count=0;return 0;
}

6. 销毁栈

(1)函数定义

int destroy_stack(stack_t **my_stack);

(2)注意点
(3)代码实现
int destroy_stack(stack_t **my_stack){if(NULL==my_stack||NULL==*my_stack){return -1;}//先清空再销毁if(clean_stack(*my_stack)){return -1;}free(*my_stack);*my_stack=NULL;return 0;
}

7. 打印栈

(1)函数定义

int print_stack(stack_t *my_stack);

(2)注意点
  1. 入参合理性检查
(3)代码实现
int print_stack(stack_t *my_stack){if(NULL==my_stack){return -1;}if(is_empty(my_stack)){printf("栈空\n");return -1;}node_t *ptemp=my_stack->top;for(int i=0;i<my_stack->count;i++){printf("%d ",ptemp->data);ptemp=ptemp->next;}putchar(10);return 0;
}
http://www.yayakq.cn/news/750857/

相关文章:

  • 品牌策划网站推荐网易企业邮箱怎么登录
  • 郑州网站建设维护网站哪家公司好
  • 深圳自适应网站开发多少钱怎样建一个英文网站
  • 免费建各种网站太原本地网站建设
  • 个人免费网站注册com做网站的费用入账
  • 宁波网站营销推广策划方案制作微信小程序公司
  • 企业建站费用情况网站建设套餐有哪些
  • 免费制作二维码网站做国外贸易哪个网站好
  • 做云盘网站哪个好建设自己网站
  • 象山企业门户网站建设国际财经新闻
  • 济源建设网站东莞企业网站推广怎么做
  • 菡萏怡景装饰公司南京整站优化
  • 经过开发建设 网站上线了如何办好公司网站
  • php网站如何攻击类似快手网站开发
  • 苏州微网站建设公司哪家好文化推广网站建设心得
  • 网站建设的布局对网络推广的影响wordpress 账号 有效期
  • 手机网站后期维护按揭车在哪个网站可以做贷款
  • 网站优化需要什么软件如何在微信上做广告
  • ps外包网站wordpress 更改模块位置
  • 服装租赁 网站 phpjsp网站开发视频教程
  • 电脑版网站建设合同深圳建网站一般多少钱
  • 青岛网站互联网公司多用户商城系统哪家好些
  • 企业网站做优化排名象客做视频网站侵权吗
  • wordpress页面使用方法江苏seo团队
  • 公司做网站还是做app广东专业网站优化公司报价
  • 网站建设需要哪些成本费用修改 WordPress 模板
  • 龙岩网站设计价格怎样wordpress
  • 网站中超链接怎么做阿里巴巴出口贸易平台
  • 网站建设相关专业表格模板网站
  • 北京长空建设有限公司网站电子商城市场