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

长沙门户网站有哪些网站如何做一张轮播图

长沙门户网站有哪些,网站如何做一张轮播图,dw响应式网站模板,山东省建设科技协会网站首页目录 一、栈 1.栈的概念及结构 1.1栈的概念 1.2栈的结构示意图 2.栈的实现 2.1支持动态增长的栈的结构 2.2压栈#xff08;入栈#xff09; 2.3出栈 2.4支持动态增长的栈的代码实现 二、队列 1.队列的概念及结构 1.1队列的概念 1.2队列的结构示意图 2.队列的实…目录 一、栈 1.栈的概念及结构 1.1栈的概念 1.2栈的结构示意图 2.栈的实现 2.1支持动态增长的栈的结构 2.2压栈入栈 2.3出栈 2.4支持动态增长的栈的代码实现 二、队列 1.队列的概念及结构 1.1队列的概念 1.2队列的结构示意图 2.队列的实现 2.1队列的结构 2.2队尾入队列 2.3队头出队列 2.4队列的代码实现 一、栈 1.栈的概念及结构 1.1栈的概念 栈是一种特殊的线性表。栈只允许在固定的一端进行插入和删除数据的操作栈的插入操作叫做压栈进栈栈的删除操作叫做出栈进行数据插入和删除操作的一端叫做栈顶另一端为栈底。栈中的元素遵循先进后出的原则。 1.2栈的结构示意图 2.栈的实现 栈一般分为静态栈和支持动态增长的栈静态栈由于栈的空间大小固定不具实用性所以我们只针对支持动态增长的栈进行代码实现 2.1支持动态增长的栈的结构 栈的实现一般使用数组形式来实现支持动态增长的栈即开辟一个动态数组a用来存储数据当栈的容量满了之后方便扩容。 // 支持动态增长的栈 typedef int STDataType; typedef struct Stack {STDataType* a;int top; // 栈顶int capacity; // 容量 }Stack; 2.2压栈入栈 每次压栈首先检查栈的容量是否已满再决定是否需要扩容压栈的元素变为新的栈顶 // 入栈 void StackPush(Stack* ps, STDataType data) {assert(ps);if (ps-top ps-capacity){int newcapacity ps-capacity 0 ? 5 : (ps-capacity) * 2;STDataType* tmp (STDataType*)realloc(ps-a, sizeof(STDataType) * newcapacity);if (tmp NULL){perror(realloc:);return;}ps-a tmp;ps-capacity newcapacity;}ps-a[ps-top] data;ps-top; } 2.3出栈 出栈后新的栈顶变为出栈前的栈顶的前一个元素 // 出栈 void StackPop(Stack* ps) {assert(ps);assert(!StackEmpty(ps));ps-top--; } 2.4支持动态增长的栈的代码实现 #pragma once #includeassert.h #includestdlib.h #includestdio.h// 支持动态增长的栈 typedef int STDataType; typedef struct Stack {STDataType* a;int top; // 栈顶int capacity; // 容量 }Stack;// 初始化栈 void StackInit(Stack* ps) {assert(ps);ps-a NULL;ps-top 0;//top指向栈顶的下一个位置,对top的操作需要是先使用后ps-capacity 0; }// 入栈 void StackPush(Stack* ps, STDataType data) {assert(ps);if (ps-top ps-capacity){int newcapacity ps-capacity 0 ? 5 : (ps-capacity) * 2;STDataType* tmp (STDataType*)realloc(ps-a, sizeof(STDataType) * newcapacity);if (tmp NULL){perror(realloc:);return;}ps-a tmp;ps-capacity newcapacity;}ps-a[ps-top] data;ps-top; }// 出栈 void StackPop(Stack* ps) {assert(ps);assert(!StackEmpty(ps));ps-top--; }// 获取栈顶元素 STDataType StackTop(Stack* ps) {assert(ps);assert(!StackEmpty(ps));return ps-a[ps-top - 1]; }// 获取栈中有效元素个数 int StackSize(Stack* ps) {assert(ps);return ps-top; }// 检测栈是否为空如果为空返回非零结果如果不为空返回0 int StackEmpty(Stack* ps) {assert(ps);return ps-top 0; }// 销毁栈 void StackDestroy(Stack* ps) {assert(ps);free(ps-a);ps-a NULL;ps-top 0;ps-capacity 0; } 二、队列 1.队列的概念及结构 1.1队列的概念 不同于栈的概念队列只允许在其一端进行插入数据操作在另一端进行删除数据操作。进行插入数据操作的一端是队尾进行删除数据操作的一端是队头。队列是一种特殊的线性表遵循先进先出的原则。 1.2队列的结构示意图 2.队列的实现 2.1队列的结构 队列的实现一般使用链表的结构更优 代码 // 队列成员节点结构 typedef int QDataType; typedef struct QListNode {struct QListNode* next;QDataType data; }QNode;// 队列的结构 typedef struct Queue {QNode* front;QNode* rear;int size; }Queue; 简图 2.2队尾入队列 代码 // 队尾入队列 void QueuePush(Queue* q, QDataType data) {assert(q);QNode* NewNode (QNode*)malloc(sizeof(QNode));if (NewNode NULL){perror(malloc:);return;}NewNode-data data;NewNode-next NULL;if (q-size 0){q-front q-rear NewNode;}else{q-rear-next NewNode;q-rear q-rear-next;}q-size; } 简图 2.3队头出队列 代码 // 队头出队列 void QueuePop(Queue* q) {assert(q);//assert(!QueueEmpty(q));if (q-front q-rear){if (q-front NULL){return;}else{free(q-front);q-front q-rear NULL;}}else{QNode* Tmp q-front;q-front Tmp-next;free(Tmp);Tmp NULL;}q-size--; } 简图 2.4队列的代码实现 #pragma once #includeassert.h #includestdlib.h #includestdio.h// 链式结构表示队列成员节点 typedef int QDataType; typedef struct QListNode {struct QListNode* next;QDataType data; }QNode;// 队列的结构 typedef struct Queue {QNode* front;QNode* rear;int size; }Queue;// 初始化队列 void QueueInit(Queue* q) {assert(q);q-front q-rear NULL;q-size 0; }// 队尾入队列 void QueuePush(Queue* q, QDataType data) {assert(q);QNode* NewNode (QNode*)malloc(sizeof(QNode));if (NewNode NULL){perror(malloc:);return;}NewNode-data data;NewNode-next NULL;if (q-size 0){q-front q-rear NewNode;}else{q-rear-next NewNode;q-rear q-rear-next;}q-size; }// 队头出队列 void QueuePop(Queue* q) {assert(q);//assert(!QueueEmpty(q));if (q-front q-rear){if (q-front NULL){return;}else{free(q-front);q-front q-rear NULL;}}else{QNode* Tmp q-front;q-front Tmp-next;free(Tmp);Tmp NULL;}q-size--; }// 获取队列头部元素 QDataType QueueFront(Queue* q) {assert(q);assert(!QueueEmpty(q));return q-front-data; }// 获取队列队尾元素 QDataType QueueBack(Queue* q) {assert(q);assert(!QueueEmpty(q));return q-rear-data; }// 获取队列中有效元素个数 int QueueSize(Queue* q) {assert(q);return q-size; }// 检测队列是否为空如果为空返回非零结果如果非空返回0 int QueueEmpty(Queue* q) {assert(q);return q-size 0 ? 1 : 0; }// 销毁队列 void QueueDestroy(Queue* q) {assert(q);while(!QueueEmpty(q)){QueuePop(q);} }
http://www.hkea.cn/news/14463730/

相关文章:

  • 网站主题页长春火车站出站要求
  • 深圳市手机网站建设报价网络营销发展的趋势
  • 网页设计网站维护网站建设的重点难点
  • wordpress 换行seo手机优化方法
  • 网站做下载文件模块360建筑网已经发布的信息在哪里看
  • 智能建站系统官网网站建设就业前景2017
  • ui做标注的网站18款未成年禁用软件ap入口
  • 中国设计网站排行榜软件开发公司前十名
  • 怎么做网站调查表软装设计方案网站
  • 10个网站用户体验优化的研究结果上传网站再备案
  • 银川网站开发公司电话网站建设与开发学什么内容呢
  • 郴州网站制作公司网站的优势是什么
  • 硬件开发需求seo自动工具
  • 网站运维服务内容商品推广文案
  • 网站开发需求模板模板数字媒体艺术网站建设
  • 一流的扬中网站建设关键词优化搜索引擎
  • 政务网站开发方案手机英语学习网站触屏版手机wap用户登陆注册网站模板115
  • 做吗查网站的流量网站推广服务报价表
  • 网站建设介绍大全网站采集注意
  • 创建简易个人网站wordpress 公司模板
  • 网站开发要用什么语言沈阳工程信息造价网
  • 手机微网站伊春北京网站建设
  • 网站制作月薪多少wordpress 词库
  • 企业宣传文案网络seo公司
  • 发布网站搭建教程如何自己制作首页网站
  • 淄博团购网站建设莱芜户型优化培训班
  • 网站建设还好做吗做网站需要技术
  • 企业 网站 客户留言怎么做什么网站可以做十万的分期付款
  • 2008iis 网站 打不开企业域名是什么意思
  • 股权众筹网站开发网络营销发展的趋势