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

网站建设申请表淳化网站制作

网站建设申请表,淳化网站制作,设计网站推荐p,wordpress添加域名1.前言 哈喽大家好啊#xff0c;今天博主继续为大家带来数据结构与算法的学习笔记#xff0c;今天是关于栈和队列#xff0c;未来博主会将上一章《顺序表与链表》以及本章《栈与队列》做专门的习题应用专题讲解#xff0c;都会很有内容含量 #xff0c;欢迎大家多多支持今天博主继续为大家带来数据结构与算法的学习笔记今天是关于栈和队列未来博主会将上一章《顺序表与链表》以及本章《栈与队列》做专门的习题应用专题讲解都会很有内容含量 欢迎大家多多支持你的鼓励是我最大的动力我们码上见 2.正文 2.1栈 2.1.1结构定义 栈是一种特殊的线性数据结构它的操作顺序是后进先出。栈只允许在栈顶进行元素的插入入栈和删除出栈操作而栈底则通常不直接访问。 2.1.2特点 后进先出最后进入栈的元素会最先被取出。操作限制只能在栈顶进行数据的添加和删除操作。应用场景常用于管理函数调用的返回地址、表达式求值、括号匹配等。 2.1.3基本操作 入栈Push将元素添加到栈顶新元素成为栈顶元素。出栈Pop从栈顶移除元素栈顶指针下移之前的栈顶元素不再可访问。获取栈顶元素Peek/Top查看栈顶元素的值但不移除它。判断栈是否为空如果栈中没有元素则栈为空。获取栈的大小返回栈中元素的数量。栈的初始化为栈分配初始空间并设置栈顶指针。栈的销毁释放栈所占用的空间。 2.1.4栈的俩种实现方式 栈的实现方式主要有两种基于数组的顺序栈和基于链表的链式栈。顺序栈利用一组地址连续的存储单元存放数据元素并通过一个栈顶指针来指示当前栈顶元素的位置。链式栈则通过链表来实现其中链表的头部或尾部作为栈顶。 2.2队列 2.2.1结构定义 队列是一种遵循先进先出原则的数据结构。它只允许在一端队尾进行元素的插入入队而在另一端队头进行元素的删除出队。 2.2.2特点 基本包含的元素size指容量head头指针tail尾指针 先进先出FIFO队列中的元素必须按照它们进入队列的顺序离开队列。这是队列最重要的特性。 只允许在队尾插入元素新元素必须添加到队列的末尾这称为入队操作。 只允许在队头删除元素只能删除队列最前面的元素这称为出队操作。 额外注意队尾的指针是一个空指针是不指向任何元素的。 2.2.3队列的假溢出以及循环队列 队列假溢出出现原因队列假溢出是指在用数组模拟的顺序队列中尽管队列中实际还有空闲位置但由于队尾指针已经指向了数组的最大下标位置而队头指针并未指向数组的最小下标的前一位置此时若尝试进行入队操作则会出现上溢现象即无法将新元素加入队列但实际上队列并未真正存满。这种现象就被称为队列的假溢出。 解决方法创建循环队列即当队尾指针到达数组的末尾时它会回到数组的开头继续移动。在循环队列中可以通过判断队尾指针的下一个位置与队头指针的相对关系来确定队列是否已满或为空。具体地如果 (rear1)%MAXSIZEfront则队列满如果 frontrear则队列空。其中MAXSIZE是队列的最大容量。 2.2.3队列顺序表的实现 #include stdio.h #include stdlib.h #include time.htypedef struct vector {int size, count;int *data;//总大小,元素数量 //指针指向连续的存储区 } vector; //初始化 vector *getNewVector(int n) {vector *p (vector *)malloc(sizeof(vector));p-size n;//存储上限p-count 0;p-data (int *)malloc(sizeof(int) * n);return p; }int expand(vector *v) {if (v NULL) return 0;printf(expand v from %d to %d\n, v-size, 2 * v-size);int *p (int *)realloc(v-data, sizeof(int) * 2 * v-size);if (p NULL) return 0;v-data p;v-size * 2;return 1; } //插入操作 int insert(vector *v, int pos, int val) {if (pos 0 || pos v-count) return 0;if (v-size v-count !expand(v)) return 0;for (int i v-count - 1; i pos; i--) {v-data[i 1] v-data[i];}v-data[pos] val;v-count 1;return 1; } //销毁操作 int erase(vector *v, int pos) {if (pos 0 || pos v-count) return 0;for (int i pos 1; i v-count; i) {v-data[i - 1] v-data[i];}v-count - 1;return 1; }void output_vector(vector *v) {int len 0;for (int i 0; i v-size; i) {len printf(%3d, i);}printf(\n);for (int i 0; i len; i) printf(-);printf(\n);for (int i 0; i v-count; i) {printf(%3d, v-data[i]);}printf(\n);printf(\n\n);return ; } //删除操作 void clear(vector *v) {if (v NULL) return ;free(v-data);free(v);return ; }int main() {srand(time(0));#define MAX_OP 20vector *v getNewVector(2);for (int i 0; i MAX_OP; i) {int op rand() % 4, pos, val, ret;switch (op) {case 0:case 1:case 2:pos rand() % (v-count 2);//为了可以看到插入到非法位置时程序的反应val rand() % 100;ret insert(v, pos, val);printf(insert %d at %d to vector %d\n, val, pos, ret);break;case 3:pos rand() % (v-count 2);ret erase(v, pos);printf(erase item at %d in vector %d\n, pos, ret);break;}output_vector(v);}clear(v);return 0; } 2.2.4队列链表的实现 #include stdio.h #include stdlib.h #include time.h#define DL 3 #define STR(n) #n #define DIGIT_LEN_STR(n) % STR(n) dtypedef struct Node {int data;struct Node *next; } Node;Node *getNewNode(int val) {Node *p (Node *)malloc(sizeof(Node));p-data val;p-next NULL;return p; }Node *insert(Node *head, int pos, int val) {Node new_head, *p new_head, *node getNewNode(val);new_head.next head;for (int i 0; i pos; i) p p-next;node-next p-next;p-next node;return new_head.next; }void clear(Node *head) {if (head NULL) return ;for (Node *p head, *q; p; p q) {q p-next;free(p);}return ; }void output_linklist(Node *head, int flag 0) {int n 0;for (Node *p head; p; p p-next) n 1;for (int i 0; i n; i) {printf(DIGIT_LEN_STR(DL), i);printf( );}printf(\n);for (Node *p head; p; p p-next) {printf(DIGIT_LEN_STR(DL), p-data);printf(-);}printf(\n);if (flag 0) printf(\n\n);return ; }int find(Node *head, int val) {Node *p head;int n 0;while (p) {if (p-data val) {output_linklist(head, 1);int len n * (DL 2) 2;for (int i 0; i len; i) printf( );printf(^\n);for (int i 0; i len; i) printf( );printf(|\n);return 1;}n 1;p p-next;}return 0; }int main() {srand(time(0));#define MAX_OP 7Node *head NULL;for (int i 0; i MAX_OP; i) {int pos rand() % (i 1), val rand() % 100;printf(insert %d at %d to linklist\n, val, pos);head insert(head, pos, val);output_linklist(head);}int val;while (~scanf(%d, val)) {if (!find(head, val)) {printf(not found\n);}}clear(head);return 0; } 3.小结 今天的分享到这里就结束了哦数据结构与算法的学习真是让人受益匪浅就是有点费脑子哈哈哈大家一起加油如果大家有帮助的话不要忘了点点关注点点赞哦。
http://www.sczhlp.com/news/217148/

相关文章:

  • 饭店的网站建设进行评价平台公司有哪些
  • 顺德手机网站设计权威新城免费做网站
  • 淘宝网站做超链接房地产开发公司注册条件
  • 顺义做网站的厂家seo免费课程视频
  • 什么站做咨询网站好市场监督管理局简称
  • 中国建设招标网是个假网站1688成品网站源码
  • 电子商务网站软件建设核心外贸网站制作公司哪家好
  • 青海省公路建设管理局网站如何让客户主动找你做网站
  • 内蒙古城乡建设网站logoko
  • 国外有哪些网站可以做电商免费网页浏览器
  • 网站规划建设前期规划方案织梦 网站迁移
  • 网站设计的第一步是广州市网络广告推广企业
  • 网站做外链的具体步骤appcan wordpress插件
  • 网站如何留言重庆网站排名
  • 站长推荐百度站长资源平台
  • 高端定制网站建设报价苏州哪家网站建设好
  • 安徽省建设厅到底哪个网站响应式模板网站
  • 手机微网站开发教程网站备案添加APP备案
  • 公司建网站多少拍卖网站开发多少钱
  • jq特效网站模板免费软件app下载
  • 群艺馆网站建设方案检测网站访问量
  • 米理 课程描述/学习计划/Study program Detailed study program (course description)
  • 2025年线路调压器厂家推荐榜:10kv线路调压器/单相线路调压器/三相线路调压器/助力电网稳定运行,优选品牌指南
  • 网站建设教程txtwordpress必须安装php
  • 网站面包屑导航设计特点海淀网站建设
  • 北京网站开发公司哪里济南兴田德润优惠吗企业建站公司报价
  • 做网站是否要备案wordpress会越来越慢
  • 做灯具外贸哪个网站好做为什么大公司不用uniapp
  • 如何知道一个网站做的什么推广铭泰东莞网站建设
  • 广东省建设八大员网站建设网站应该加什么服务器