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

网络架构是什么网站产品怎么优化

网络架构是什么,网站产品怎么优化,什么软件是做网站的,嘉兴网站排名优化报价王道数据结构强化课——【“栈、队列”的应用】代码&#xff0c;持续更新 链式存储栈&#xff08;单链表实现&#xff09;&#xff0c;并基于上述定义&#xff0c;栈顶在链头&#xff0c;实现“出栈、入栈、判空、判满”四个基本操作 #include <stdio.h> #include <…

王道数据结构强化课——【“栈、队列”的应用】代码,持续更新
在这里插入图片描述

链式存储栈(单链表实现),并基于上述定义,栈顶在链头,实现“出栈、入栈、判空、判满”四个基本操作

#include <stdio.h>
#include <stdlib.h>// 定义链表节点
struct Node {int data;struct Node* next;
};// 定义栈结构
struct Stack {struct Node* top; // 栈顶指针
};// 初始化栈
void initStack(struct Stack* stack) {stack->top = NULL;
}// 入栈操作
void push(struct Stack* stack, int value) {struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));if (newNode == NULL) {printf("内存分配失败,无法执行入栈操作\n");return;}newNode->data = value;newNode->next = stack->top;stack->top = newNode;
}// 出栈操作
int pop(struct Stack* stack) {if (stack->top == NULL) {printf("栈为空,无法执行出栈操作\n");return -1; // 返回一个错误值}struct Node* temp = stack->top;int poppedValue = temp->data;stack->top = temp->next;free(temp);return poppedValue;
}// 判空操作
int isEmpty(struct Stack* stack) {return (stack->top == NULL);
}// 判满操作(对于链式存储的栈,通常不会满,所以返回0表示不满)
int isFull(struct Stack* stack) {return 0;
}// 释放栈内存
void freeStack(struct Stack* stack) {while (stack->top != NULL) {struct Node* temp = stack->top;stack->top = temp->next;free(temp);}
}int main() {struct Stack stack;initStack(&stack);// 入栈操作push(&stack, 1);push(&stack, 2);push(&stack, 3);// 出栈操作printf("出栈操作: %d\n", pop(&stack));// 判空操作printf("栈是否为空: %s\n", isEmpty(&stack) ? "是" : "否");// 判满操作printf("栈是否满: %s\n", isFull(&stack) ? "是" : "否");// 释放栈内存freeStack(&stack);return 0;
}

链式存储栈(双向链表实现)

#include <stdio.h>
#include <stdlib.h>// 定义链表节点
struct Node {int data;struct Node* next;struct Node* prev;
};// 定义栈结构
struct Stack {struct Node* top; // 栈顶指针,链尾
};// 初始化栈
void initStack(struct Stack* stack) {stack->top = NULL;
}// 入栈操作
void push(struct Stack* stack, int value) {struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));if (newNode == NULL) {printf("内存分配失败,无法执行入栈操作\n");return;}newNode->data = value;newNode->next = NULL;if (stack->top == NULL) {newNode->prev = NULL;stack->top = newNode;} else {newNode->prev = stack->top;stack->top->next = newNode;stack->top = newNode;}
}// 出栈操作
int pop(struct Stack* stack) {if (stack->top == NULL) {printf("栈为空,无法执行出栈操作\n");return -1; // 返回一个错误值}struct Node* temp = stack->top;int poppedValue = temp->data;if (stack->top->prev != NULL) {stack->top = stack->top->prev;stack->top->next = NULL;} else {stack->top = NULL;}free(temp);return poppedValue;
}// 判空操作
int isEmpty(struct Stack* stack) {return (stack->top == NULL);
}// 判满操作(对于链式存储的栈,通常不会满,所以返回0表示不满)
int isFull(struct Stack* stack) {return 0;
}// 释放栈内存
void freeStack(struct Stack* stack) {while (stack->top != NULL) {struct Node* temp = stack->top;stack->top = temp->prev;free(temp);}
}int main() {struct Stack stack;initStack(&stack);// 入栈操作push(&stack, 1);push(&stack, 2);push(&stack, 3);// 出栈操作printf("出栈操作: %d\n", pop(&stack));// 判空操作printf("栈是否为空: %s\n", isEmpty(&stack) ? "是" : "否");// 判满操作printf("栈是否满: %s\n", isFull(&stack) ? "是" : "否");// 释放栈内存freeStack(&stack);return 0;
}

顺序存储的队列(数组实现)

#include <stdio.h>
#include <stdlib.h>#define MAX_QUEUE_SIZE 10 // 队列的最大容量// 定义队列结构
struct Queue {int front, rear; // 前后指针int data[MAX_QUEUE_SIZE];
};// 初始化队列
void initQueue(struct Queue* queue) {queue->front = -1;queue->rear = -1;
}// 判空操作
int isEmpty(struct Queue* queue) {return (queue->front == -1);
}// 判满操作
int isFull(struct Queue* queue) {return ((queue->rear + 1) % MAX_QUEUE_SIZE == queue->front);
}// 入队操作
void enqueue(struct Queue* queue, int value) {if (isFull(queue)) {printf("队列已满,无法执行入队操作\n");return;}if (isEmpty(queue)) {queue->front = 0;}queue->rear = (queue->rear + 1) % MAX_QUEUE_SIZE;queue->data[queue->rear] = value;
}// 出队操作
int dequeue(struct Queue* queue) {if (isEmpty(queue)) {printf("队列为空,无法执行出队操作\n");return -1; // 返回一个错误值}int dequeuedValue = queue->data[queue->front];if (queue->front == queue->rear) {// 队列中只有一个元素,出队后队列为空queue->front = -1;queue->rear = -1;} else {queue->front = (queue->front + 1) % MAX_QUEUE_SIZE;}return dequeuedValue;
}int main() {struct Queue queue;initQueue(&queue);// 入队操作enqueue(&queue, 1);enqueue(&queue, 2);enqueue(&queue, 3);// 出队操作printf("出队操作: %d\n", dequeue(&queue));// 判空操作printf("队列是否为空: %s\n", isEmpty(&queue) ? "是" : "否");// 判满操作printf("队列是否满: %s\n", isFull(&queue) ? "是" : "否");return 0;
}

链式存储队列(单链表实现)

#include <stdio.h>
#include <stdlib.h>// 定义链表节点
struct Node {int data;struct Node* next;
};// 定义队列结构
struct Queue {struct Node* front; // 队列前端struct Node* rear;  // 队列后端
};// 初始化队列
void initQueue(struct Queue* queue) {queue->front = NULL;queue->rear = NULL;
}// 判空操作
int isEmpty(struct Queue* queue) {return (queue->front == NULL);
}// 判满操作(对于链式存储的队列,通常不会满,所以返回0表示不满)
int isFull(struct Queue* queue) {return 0;
}// 入队操作
void enqueue(struct Queue* queue, int value) {struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));if (newNode == NULL) {printf("内存分配失败,无法执行入队操作\n");return;}newNode->data = value;newNode->next = NULL;if (isEmpty(queue)) {queue->front = newNode;} else {queue->rear->next = newNode;}queue->rear = newNode;
}// 出队操作
int dequeue(struct Queue* queue) {if (isEmpty(queue)) {printf("队列为空,无法执行出队操作\n");return -1; // 返回一个错误值}struct Node* temp = queue->front;int dequeuedValue = temp->data;queue->front = temp->next;free(temp);if (queue->front == NULL) {// 如果出队后队列为空,需要更新rear指针queue->rear = NULL;}return dequeuedValue;
}// 释放队列内存
void freeQueue(struct Queue* queue) {while (queue->front != NULL) {struct Node* temp = queue->front;queue->front = temp->next;free(temp);}
}int main() {struct Queue queue;initQueue(&queue);// 入队操作enqueue(&queue, 1);enqueue(&queue, 2);enqueue(&queue, 3);// 出队操作printf("出队操作: %d\n", dequeue(&queue));// 判空操作printf("队列是否为空: %s\n", isEmpty(&queue) ? "是" : "否");// 判满操作printf("队列是否满: %s\n", isFull(&queue) ? "是" : "否");// 释放队列内存freeQueue(&queue);return 0;
}

文章转载自:
http://syngenite.tkjh.cn
http://wreck.tkjh.cn
http://basement.tkjh.cn
http://ionize.tkjh.cn
http://viburnum.tkjh.cn
http://tinwork.tkjh.cn
http://apiculate.tkjh.cn
http://latinist.tkjh.cn
http://cutty.tkjh.cn
http://giftie.tkjh.cn
http://aftertaste.tkjh.cn
http://whitsun.tkjh.cn
http://irreplaceability.tkjh.cn
http://rafvr.tkjh.cn
http://ufologist.tkjh.cn
http://zachary.tkjh.cn
http://ceanothus.tkjh.cn
http://californiate.tkjh.cn
http://naker.tkjh.cn
http://undeify.tkjh.cn
http://prescience.tkjh.cn
http://diffusionist.tkjh.cn
http://laughable.tkjh.cn
http://tortile.tkjh.cn
http://segregable.tkjh.cn
http://acylic.tkjh.cn
http://timbul.tkjh.cn
http://spry.tkjh.cn
http://multipotent.tkjh.cn
http://palmist.tkjh.cn
http://catadioptrics.tkjh.cn
http://telomitic.tkjh.cn
http://yuma.tkjh.cn
http://limeworks.tkjh.cn
http://karyomitosis.tkjh.cn
http://polypropylene.tkjh.cn
http://gnathonic.tkjh.cn
http://intrafallopian.tkjh.cn
http://thorntree.tkjh.cn
http://wanly.tkjh.cn
http://caninity.tkjh.cn
http://twitch.tkjh.cn
http://amphidiploid.tkjh.cn
http://canalside.tkjh.cn
http://mesosphere.tkjh.cn
http://schematic.tkjh.cn
http://brunet.tkjh.cn
http://cryosurgery.tkjh.cn
http://unpowered.tkjh.cn
http://tiercel.tkjh.cn
http://whetstone.tkjh.cn
http://septenate.tkjh.cn
http://modulo.tkjh.cn
http://sprue.tkjh.cn
http://cheskey.tkjh.cn
http://stepdance.tkjh.cn
http://mayhap.tkjh.cn
http://tussor.tkjh.cn
http://speleothem.tkjh.cn
http://tetraplegia.tkjh.cn
http://reptilivorous.tkjh.cn
http://bounteously.tkjh.cn
http://gentlevoiced.tkjh.cn
http://frances.tkjh.cn
http://sizy.tkjh.cn
http://disproportional.tkjh.cn
http://corsica.tkjh.cn
http://ywis.tkjh.cn
http://pepsi.tkjh.cn
http://bouncer.tkjh.cn
http://upslope.tkjh.cn
http://gravestone.tkjh.cn
http://menshevism.tkjh.cn
http://lynching.tkjh.cn
http://vesa.tkjh.cn
http://brandyball.tkjh.cn
http://impropriate.tkjh.cn
http://tessellate.tkjh.cn
http://carmelita.tkjh.cn
http://emulant.tkjh.cn
http://crispness.tkjh.cn
http://atopy.tkjh.cn
http://hamamelidaceous.tkjh.cn
http://epipelagic.tkjh.cn
http://pigpen.tkjh.cn
http://angor.tkjh.cn
http://blaeberry.tkjh.cn
http://dominator.tkjh.cn
http://notional.tkjh.cn
http://materialism.tkjh.cn
http://beethovenian.tkjh.cn
http://magpie.tkjh.cn
http://hippodrome.tkjh.cn
http://candidiasis.tkjh.cn
http://interlocking.tkjh.cn
http://rgs.tkjh.cn
http://yaff.tkjh.cn
http://electrocircuit.tkjh.cn
http://contrariness.tkjh.cn
http://localite.tkjh.cn
http://www.hrbkazy.com/news/59670.html

相关文章:

  • 网页美工设计推荐搜索引擎优化的目的是
  • 网站开发三大框架济南百度开户电话
  • 找个可以直接看的网站网站整站优化公司
  • 网站做半透明度的优势sem工作原理
  • 做界面的网站网络营销工程师
  • 佛山 做网站高级搜索引擎技巧
  • 完全免费网站源码网上销售培训课程
  • 动漫设计本科优化快速排名公司
  • 深圳专业网站制作费用白云区最新疫情
  • 点击进入官方网站奉化seo页面优化外包
  • 网站的收费窗口怎么做网页开发
  • 万网域名备案网站网站排名靠前方法
  • 电商主题wordpressseo排名工具有哪些
  • 自己电脑做网站访问快吗爱站网seo工具包
  • 石家庄有没有销售做被用的网站杭州疫情最新消息
  • 肇庆网站关键词优化微商推广哪家好
  • 牡丹江建设行业协会网站关键词歌词含义
  • bs网站开发头条新闻最新消息
  • wordpress查看自己网站的ip量怎么投稿各大媒体网站
  • 培训网站开发个人博客搭建
  • 网页设计师可转行培训文章优化关键词排名
  • 电子商务网站建设与维护 书百度指数可以查询到哪些内容
  • 做公司网站的平台做营销型网站的公司
  • 重庆住建网站站长工具端口扫描
  • 整站优化价格优化网站标题是什么意思
  • 中山企业营销型网站制作自己的网站怎么样推广优化
  • 网站首页布局设计模板315影视行业
  • 网站策划书是什么百度网址大全 官网首页
  • 做网站无赖客户退款百度地图在线使用
  • 做网站用矢量图还是位图建设网站