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

做网站通常用的软件网站建设推广谷得网络

做网站通常用的软件,网站建设推广谷得网络,wordpress页面导航条,电子商务网站开发前言引言 在对顺序表#xff0c;链表有了充分的理解之后#xff0c;现在让我们学习栈和队列#xff01;#xff01;#xff01; 【链表】 #x1f448;链表 【顺序表】#x1f448;顺序表 目录 #x1f4af;栈 1.栈的概念及结构 2.栈的实现 ⭐初始化栈 ⭐入栈 ⭐…引言 在对顺序表链表有了充分的理解之后现在让我们学习栈和队列 【链表】    链表 【顺序表】顺序表 目录 栈 1.栈的概念及结构 2.栈的实现 ⭐初始化栈 ⭐入栈 ⭐出栈 ⭐获取栈顶元素 ⭐获取栈中有效元素个数 ⭐检测栈是否为空 ⭐销毁栈 ✨实现结果 队列 1.队列的概念及结构 2.列队的实现  ⭐初始化列队 ⭐队尾入列队 ⭐队尾出列队 ⭐获取队列头部元素 ⭐获取队列中有效元素个数 ⭐检测队列是否为空  ⭐销毁列队 ✨实现结果 栈 1.栈的概念及结构 栈一种特殊的线性表其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶另一端称为栈底。栈中的数据元素遵守后进先出LIFOLast In First Out的原则。压栈栈的插入操作叫做进栈/压栈/入栈入数据在栈顶。出栈栈的删除操作叫做出栈。出数据也在栈顶。 先进后出 Last In First Out 让我们思考下面2道题目加深对栈的理解  2.栈的实现 栈的实现一般可以使用数组或者链表实现相对而言数组的结构实现更优一些。因为数组在尾上插入数据的代价比较小。 // 下面是定长的静态栈的结构实际中一般不实用所以我们主要实现下面的支持动态增长的栈 typedef int STDataType; #define N 10 typedef struct Stack {STDataType _a[N];int _top; // 栈顶 }Stack; // 支持动态增长的栈 typedef int STDataType; typedef struct Stack {STDataType* _a;int _top; // 栈顶int _capacity; // 容量 }Stack;// 初始化栈 void StackInit(Stack* ps);// 入栈 void StackPush(Stack* ps, STDataType data);// 出栈 void StackPop(Stack* ps);// 获取栈顶元素 STDataType StackTop(Stack* ps);// 获取栈中有效元素个数 int StackSize(Stack* ps);// 检测栈是否为空如果为空返回非零结果如果不为空返回0 bool StackEmpty(Stack* ps);// 销毁栈 void StackDestroy(Stack* ps); ⭐初始化栈 typedef int STDateType; typedef struct Stack {STDateType* a;int top;int capacity; }ST; ⭐入栈 void StackPush(ST* p, STDateType x) {if (p-top p-capacity){STDateType* temp (STDateType*)realloc(p-a, p-capacity * 2*sizeof(STDateType));if (tempNULL){printf(realloc fail\n);exit(-1);}else{p-capacity * 2;p-a temp;}}p-a[p-top] x;p-top; } ⭐出栈 void StackPoP(ST* p) {assert(p);assert(p-top0);p-top--; } ⭐获取栈顶元素 STDateType StackTop(ST* p) {assert(p);assert(p-top 0);return p-a[p-top - 1]; } ⭐获取栈中有效元素个数 int Size(ST* p) {return p-top; } ⭐检测栈是否为空 如果为空返回非零结果如果不为空返回0 bool StackEmpty(ST* p) {return p-top 0; } ⭐销毁栈 void StackDestory(ST* p) {assert(p);free(p-a);p-a NULL;p-capacity p-top 0; } ✨实现结果 int main() {ST p;StackInit(p);StackPush(p, 1);StackPush(p, 2);StackPush(p, 3);StackPush(p, 4);StackPush(p, 5);StackPush(p, 6);while (!StackEmpty(p)){printf(%d , StackTop(p));StackPoP(p);}StackDestory(p);return 0; } 队列 1.队列的概念及结构 队列只允许在一端进行插入数据操作在另一端进行删除数据操作的特殊线性表队列具有先进先出FIFO(First In First Out)入队列进行插入操作的一端称为队尾出队列进行删除操作的一端称为队头 2.列队的实现  队列的实现方式包括数组和链表。常见的队列实现方式有: 数组实现:使用一维数组存储元素通过头指针和尾指针分别指向队头和队尾实现入队和出队操作。链表实现:每个元素使用一个节点存储通过指针链接实现队列入队操作在链表末尾插入新节点出队操作删除链表头节点。                                  从head端删除元素从tail端插入元素 队列也可以数组和链表的结构实现使用链表的结构实现更优一些。因为如果使用数组的结构出队列在数组头上出数据效率会比较低。需要将后面的元素集体前移 // 链式结构表示队列 typedef struct QListNode {struct QListNode* _pNext;QDataType _data; }QNode;// 队列的结构 typedef struct Queue {QNode* _front;QNode* _rear; }Queue;// 初始化队列 void QueueInit(Queue* q);// 队尾入队列 void QueuePush(Queue* q, QDataType data);// 队头出队列 void QueuePop(Queue* q);// 获取队列头部元素 QDataType QueueFront(Queue* q);// 获取队列中有效元素个数 int QueueSize(Queue* q);// 检测队列是否为空如果为空返回非零结果如果非空返回0 int QueueEmpty(Queue* q);// 销毁队列 void QueueDestroy(Queue* q); ⭐初始化列队 void QueueInit(Queue* pq) {assert(pq);pq-head pq-tail NULL;pq-size 0; } ⭐队尾入列队 void QueuePush(Queue* pq, QDatatype x) {QNode* newnode (QNode*)malloc(sizeof(QNode));if (newnode NULL){perror(malloc fail);return;}newnode-data x;newnode-next NULL;if (pq-head NULL){assert(pq-tail NULL);pq-head pq-tail newnode;}else{pq-tail-next newnode;pq-tail newnode;}pq-size; } ⭐队尾出列队 void QueuePop(Queue* pq) {assert(pq);assert(pq-head ! NULL);if (pq-head-next NULL){free(pq-head);pq-head pq-tail NULL;}else{QNode* next pq-head-next;free(pq-head);pq-head next;}pq-size--; } ⭐获取队列头部元素 QDatatype QueueFront(Queue* pq) {assert(pq);assert(!QueueEmpty(pq));return pq-head-data; } ⭐获取队列中有效元素个数 int QueueSize(Queue* pq) {assert(pq);return pq-size; }⭐检测队列是否为空  如果为空返回非零结果如果不为空返回0 bool QueueEmpty(Queue* pq) {assert(pq);return pq-size 0; } ⭐销毁列队 void QueueDestroy(Queue* pq) {assert(pq);QNode* cur pq-head;while (cur){QNode* next cur-next;free(cur);cur next;}pq-head pq-tail NULL;pq-size 0; } ✨实现结果 int main() {Queue p;QueueInit(p);QueuePush(p, 1);QueuePush(p, 2);QueuePush(p, 3);QueuePush(p, 4);QueuePush(p, 5);while (!QueueEmpty(p)){printf(%d ,QueueFront( p));QueuePop(p);}QueueDestory(p);return 0; } 以上就是本文章的全部内容啦~ 感谢你看到最后点个赞再走吧 非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。✨✨ 欢迎订阅本专栏 ✨✨
http://www.hkea.cn/news/14445523/

相关文章:

  • 杯子电子商务网站的建设wordpress多人博客
  • 做旅游宣传图的网站有哪些国外二级域名免费申请
  • 模板型网站建设安卓app下载平台
  • 网站备案 后期logo设计在线生成免费图片加文字
  • 网站开发员工结构企业采购平台排名
  • 指定网站建设前期规划方案企业网站建立教程
  • 简洁手机购物网站会员中心模板网站特效漂亮的网站
  • 网站制作怎么学六安网站自然排名优化价格
  • 平台网站建设方案模板创造与魔法官方网站做自己
  • 做家教用什么网站做58招聘网站工作人员的心得
  • 关于科技园区建设文章的网站用vs做购物网站
  • pc端与手机端网站开发的区别长沙招聘网站制作
  • 织梦cms视频网站建设中小网站公司做的推广怎么样
  • 别样网图片素材网站安徽建筑培训网
  • 网站系统管理功能自己怎么建个优惠网站
  • 建设网站的报告asp.net网站建设项目实战资料
  • 在线做数据图的网站有哪些问题推广深圳
  • 营销型网站建设-深圳信科网销网站建设流程图
  • 杭州网站设计工作室wordpress汇率插件
  • 怎么做一家网站学院网站建设报价
  • 大连做网站电话铁岭网络推广网站建设
  • 如何看网站做的好坏网站上传视频怎么做
  • 网站开发项目费用预算做网站赔了8万
  • 东莞网网站公司简介椒江做网站的公司
  • 淘宝联盟怎么做自已的网站做网站搭建的公司
  • 如何建设一个完整的网站怎么做网站
  • 消防网站建设的风格南昌房产网二手房
  • 高端网站建设推荐万维科技wordpress文章排行
  • lol网站建设数学网站怎么做
  • 深圳网站建设yuntianxia什么样的网站需要服务器