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

镇江网站建设网站遂宁网页设计公司

镇江网站建设网站,遂宁网页设计公司,长沙百度推广运营公司,局域网手机网站建设说起队列和栈#xff0c;链表动态内存分配的方式#xff0c;是比较常见的方式#xff0c;最近项目下需要在dsp上面使用队列和栈两种数据结构#xff0c;所有就使用链表动态内存分配的方式实现了一下#xff0c;但是调试的过程中发现运行的时候总是在动态内存分配的位置出b… 说起队列和栈链表动态内存分配的方式是比较常见的方式最近项目下需要在dsp上面使用队列和栈两种数据结构所有就使用链表动态内存分配的方式实现了一下但是调试的过程中发现运行的时候总是在动态内存分配的位置出bug动态内存分配malloc总是分配失败返回空指针尝试修改cmd的配置后也仍然没有解决问题。思来想去还是用数组的方式来实现队列和栈结果性能出奇的稳定所以本博客记录一下用数组实现队列和栈的代码。 队列 queue.h #ifndef USERPROGRAM_QUEUE_QUEUE_H_ #define USERPROGRAM_QUEUE_QUEUE_H_#include main.h#define QUEUE_MAX_SIZE 500 /*--------------- 单个Uint16队列 ---------------*/ typedef struct _queue{int size;int front;int rear;Uint16 data[QUEUE_MAX_SIZE]; } queue;void queue_init(queue *q); int enqueue(queue *q, Uint16 value); int dequeue(queue *q, Uint16 *value); int is_queue_empty(queue *q);extern queue scib_rx_queue; extern queue scib_tx_queue;#endif /* USERPROGRAM_QUEUE_QUEUE_H_ */queue.c  #include queue.hqueue scib_rx_queue; queue scib_tx_queue;void queue_init(queue *q){q-size 0;q-front 0;q-rear -1; }int enqueue(queue *q, Uint16 value){if(q-size QUEUE_MAX_SIZE){return 0;}q-rear;q-data[q-rear] value;q-size;return 1;}int dequeue(queue *q, Uint16 *value){if(q-size 0){return 0;}*value q-data[q-front];q-front;q-size--;// 初始化 如果是实时系统里面一直用队列初始化非常的关键if(q-size0){q-front 0;q-rear -1;}return 1; }int is_queue_empty(queue *q){return (q-size0); }栈 stack.h  #ifndef USERPROGRAM_STACK_STACK_H_ #define USERPROGRAM_STACK_STACK_H_#include main.h#define STACK_MAX_SIZE 500typedef struct _stack {float data[STACK_MAX_SIZE]; //数组建立顺序栈int top;//栈中元素个数 }stack;extern stack input_compute_stack; extern stack output_compute_stack;void stack_init(stack* s); int is_stack_empty(stack* s); int enstack(stack* s, float value); int destack(stack* s, float * value); void clearstack(stack* s);float computeformula(stack *s, float* constant_value, float* ch_value, Uint16* compute_rule, int N, int * ret);#pragma CODE_SECTION(computeformula,ramfuncs);#endif /* USERPROGRAM_STACK_STACK_H_ */stack.c  #include stack.hstack input_compute_stack; stack output_compute_stack;void stack_init(stack* s){s-top 0; }int is_stack_empty(stack* s){return (s-top0); }int enstack(stack* s, float value){if (s-top STACK_MAX_SIZE){return 0;}else{s-data[s-top] value;s-top;return 1;} }int destack(stack* s, float * value) {if (s-top 0){return 0;}else{s-top--;*value s-data[s-top];return 1;} }void clearstack(stack* s){s-top 0; }float computeformula(stack *s, float* constant_value, float* ch_value, Uint16* compute_rule, int N, int * ret){int i;float result 0;float operator1 0;float operator2 0;int stack_pop_ret1 1;int stack_pop_ret2 1;int stack_push_ret 1;for(i 0; i N; i){switch (compute_rule[i]){case ADD:stack_pop_ret1 destack(s, operator1);stack_pop_ret2 destack(s, operator2);result operator2 operator1;stack_push_ret enstack(s, result);if(stack_pop_ret10 || stack_pop_ret20 || stack_push_ret0){*ret 0;clearstack(s);return 0;}break;case SUBSTRACT:stack_pop_ret1 destack(s, operator1);stack_pop_ret2 destack(s, operator2);result operator2 - operator1;stack_push_ret enstack(s, result);if(stack_pop_ret10 || stack_pop_ret20 || stack_push_ret0){*ret 0;clearstack(s);return 0;}break;case MULTIPLY:stack_pop_ret1 destack(s, operator1);stack_pop_ret2 destack(s, operator2);result operator2 * operator1;stack_push_ret enstack(s, result);if(stack_pop_ret10 || stack_pop_ret20 || stack_push_ret0){*ret 0;clearstack(s);return 0;}break;case DIVIDE:stack_pop_ret1 destack(s, operator1);stack_pop_ret2 destack(s, operator2);if(stack_pop_ret10 || stack_pop_ret20 || operator1 0){*ret 0;clearstack(s);return 0;}else{result operator2 / operator1;stack_push_ret enstack(s, result);if(stack_push_ret0){*ret 0;clearstack(s);return 0;}}break;case CH1_P:stack_push_ret enstack(s, ch_value[0]);if(stack_push_ret0){*ret 0;clearstack(s);return 0;}break;case CH2_P:stack_push_ret enstack(s, ch_value[1]);if(stack_push_ret0){*ret 0;clearstack(s);return 0;}break;case CH3_P:stack_push_ret enstack(s, ch_value[2]);if(stack_push_ret0){*ret 0;clearstack(s);return 0;}break;case CH4_P:stack_push_ret enstack(s, ch_value[3]);if(stack_push_ret0){*ret 0;clearstack(s);return 0;}break;case CH5_P:stack_push_ret enstack(s, ch_value[4]);if(stack_push_ret0){*ret 0;clearstack(s);return 0;}break;case CH1_N:stack_push_ret enstack(s, -ch_value[0]);if(stack_push_ret0){*ret 0;clearstack(s);return 0;}break;case CH2_N:stack_push_ret enstack(s, -ch_value[1]);if(stack_push_ret0){*ret 0;clearstack(s);return 0;}break;case CH3_N:stack_push_ret enstack(s, -ch_value[2]);if(stack_push_ret0){*ret 0;clearstack(s);return 0;}break;case CH4_N:stack_push_ret enstack(s, -ch_value[3]);if(stack_push_ret0){*ret 0;clearstack(s);return 0;}break;case CH5_N:stack_push_ret enstack(s, -ch_value[4]);if(stack_push_ret0){*ret 0;clearstack(s);return 0;}break;case CONSTANT1:stack_push_ret enstack(s, constant_value[0]);if(stack_push_ret0){*ret 0;clearstack(s);return 0;}break;case CONSTANT2:stack_push_ret enstack(s, constant_value[1]);if(stack_push_ret0){*ret 0;clearstack(s);return 0;}break;case CONSTANT3:stack_push_ret enstack(s, constant_value[2]);if(stack_push_ret0){*ret 0;clearstack(s);return 0;}break;case CONSTANT4:stack_push_ret enstack(s, constant_value[3]);if(stack_push_ret0){*ret 0;clearstack(s);return 0;}break;case CONSTANT5:stack_push_ret enstack(s, constant_value[4]);if(stack_push_ret0){*ret 0;clearstack(s);return 0;}break;default:break;}}clearstack(s);*ret 1;return result;}
http://www.pierceye.com/news/669934/

相关文章:

  • 海东高端网站建设公司视频网站 费用
  • 可以帮别人备案网站吗手机建网站公司
  • 四川建设厅网上查询网站信用网站系统建设方案
  • 克隆网站后台做系统用哪个网站好
  • html5 手机网站页面实例wordpress 路由404
  • 百度地图嵌入公司网站wordpress如何去掉分类里面的大字
  • 山东住房与城乡建设网站够完美网站建设
  • 班级网站建设首页报告如何查询一个网站是否备案
  • 艺术设计类网站石家庄公司的网站设计
  • 舞钢网站建设企业做网站需要什么软件
  • 网站开发上市公司专业的网站建设价格低
  • 备案网站有哪些资料公司名字大全四个字
  • 网站推广预期达到的目标建湖人才网手机版
  • 营销网站设计公司排名wordpress图片缓冲
  • 山西建设官方网站第三方网站流量统计
  • 企业网站用wordpress龙岗网站建设网站排名优化
  • 成都建设网站哪家好事件营销的特点
  • 如何利用模板做网站视频wordpress手机版边侧导航
  • 网站制作在哪里找wordpress 设置登陆界面
  • 济南seo网站建设上海seo网站优化_搜索引擎排名_优化型企业网站建设_锦鱼网络
  • 深圳网站备影楼网站建设
  • asp网站开门桂林市区
  • dw个人网站主页怎么做网站前端用什么语言
  • 网站建设是平面设计吗网站如何做中英文双语言
  • 网站关键词先后论坛网站在线生成
  • 无为建设局网站安装wordpress xampp
  • 广药网站建设试卷wordpress人力资源模板下载
  • 电商网站规划的开发背景明年做那个网站能致富
  • 网站建设及托管合同wordpress页面批量生成二维码
  • 益阳市住房和建设局 网站哪些网站可做矿机期货