哈尔滨做网站费用,网站喜报怎么做,商务网站建设定义,现在推广一般都用什么软件链队列
要求#xff1a;实现链队列的创建、初始化、入队、出队 #xff08;先进先出#xff09;
代码
//
// Created by My.cy on 2023/10/19.
//
//链队列 创建、初始化、入队、出队 先进先出#include stdio.h
#include malloc.h//定义结构体
struct…链队列
要求实现链队列的创建、初始化、入队、出队 先进先出
代码
//
// Created by My.cy on 2023/10/19.
//
//链队列 创建、初始化、入队、出队 先进先出#include stdio.h
#include malloc.h//定义结构体
struct Node{int data;struct Node* next;
};//将头指针和尾指针封装在一起
struct FR{struct Node* front;struct Node* rear;
};//初始化
void init(struct Node* node, struct FR* fr){node-next NULL;fr-front node;fr-rear node;
}//入队
void inqueue(struct FR* fr, int value){struct Node* NewNode malloc(sizeof(struct Node));if(NewNode){NewNode-data value;NewNode-next NULL;fr-rear-next NewNode;fr-rear NewNode;printf(数据 %d 入队成功,地址为 %p \n,value, NewNode);}
}//显示队列
void isqueue(struct FR* fr){struct Node* temp fr-front;while (temp-next ! NULL){printf(%d--, temp-next-data);temp temp-next;}
}//出队列
void outqueue(struct FR* fr){if(fr-front-next NULL){printf(出队列失败队列为空\n);}struct Node* temp fr-front-next;int value temp-data;if(temp-next NULL){fr-front-next NULL;free(temp);printf(数据 %d 出队列成功!\n,value);return;}fr-front-next temp-next;free(temp);printf(数据 %d 出队列成功!\n,value);}int main(){struct Node node;struct FR fr;//初始化init(node, fr);printf(*********************链队列入队操作*********************\n);int value;printf(请输入入队的数据输入0则结束);scanf(%d,value);while (value ! 0){inqueue(fr, value);printf(请输入入队的数据输入0则结束);scanf(%d,value);}printf(\n*********************链队列显示操作*********************\n);isqueue(fr);printf(\n*********************链队列出栈操作*********************\n);int out;printf(出队列输入1结束输入0);scanf(%d,out);while (1){if(out 1){outqueue(fr);}if(out 0){break;}printf(出队列输入1结束输入0);scanf(%d,out);}printf(\n*********************链队列显示操作*********************\n);isqueue(fr);printf(\n*********************链队列入队操作*********************\n);int value_1;printf(请输入入队的数据输入0则结束);scanf(%d,value_1);while (value_1 ! 0){inqueue(fr, value_1);printf(请输入入队的数据输入0则结束);scanf(%d,value_1);}printf(\n*********************链队列显示操作*********************\n);isqueue(fr);}运行结果 循环队列
要求循环队列的 创建、入队列、出队列显示队列 计数器方法
代码
//
// Created by My.cy on 2023/10/19.
//
//循环队列计数器方法 创建、入队列、出队列显示队列 先进先出#include stdio.h
#define MAXSIZE 5struct C_S_Queue{int data[MAXSIZE];int front;int rear;int num;
};//初始化
void init(struct C_S_Queue* CSQ){CSQ-front 0;CSQ-rear 0;CSQ-num 0;
}//入队列
void inQueue(struct C_S_Queue* CSQ, int value){if(CSQ-num MAXSIZE){printf(入队列失败队列为满队列\n);return;}int index CSQ-rear % MAXSIZE;CSQ-data[index] value;CSQ-rear (CSQ-rear 1) % MAXSIZE;CSQ-num ;printf(数据 %d 在数组的第 %d 位入队成功\n,value, index1);
}//出队列
void outQueue(struct C_S_Queue* CSQ){if(CSQ-num 0){printf(出队列失败队列为空队列\n);return;}int index CSQ-front % MAXSIZE;int value CSQ-data[index];CSQ-front (CSQ-front 1) % MAXSIZE;CSQ-num --;printf(数据 %d 出队列成功\n, value);
}//显示队列
void isQueue(struct C_S_Queue* CSQ){if(CSQ-num 0){printf(显示队列失败队列为空队列\n);return;}int index 1;int f CSQ-front % MAXSIZE;while (index CSQ-num){printf(队列第 %d 位数据为 %d \n,index, CSQ-data[f]);f (f1)%MAXSIZE;index ;}
}int main(){struct C_S_Queue CSQ;//初始化init(CSQ);printf(*********************循环队列入队操作*********************\n);int value;printf(请输入入队的数据输入0则结束);scanf(%d,value);while (value ! 0){inQueue(CSQ, value);printf(请输入入队的数据输入0则结束);scanf(%d,value);}printf(*********************显示循环队列操作*********************\n);isQueue(CSQ);printf(*********************循环队列出队操作*********************\n);int out;printf(出队列输入1结束输入0);scanf(%d,out);while (1){if(out 1){outQueue(CSQ);}if(out 0){break;}printf(出队列输入1结束输入0);scanf(%d,out);}printf(*********************显示循环队列操作*********************\n);isQueue(CSQ);printf(*********************循环队列入队操作*********************\n);int value_1;printf(请输入入队的数据输入0则结束);scanf(%d,value_1);while (value_1 ! 0){inQueue(CSQ, value_1);printf(请输入入队的数据输入0则结束);scanf(%d,value_1);}printf(*********************显示循环队列操作*********************\n);isQueue(CSQ);}运行结果
*********************循环队列入队操作*********************
请输入入队的数据输入0则结束123
数据 123 在数组的第 1 位入队成功
请输入入队的数据输入0则结束23
数据 23 在数组的第 2 位入队成功
请输入入队的数据输入0则结束34
数据 34 在数组的第 3 位入队成功
请输入入队的数据输入0则结束445
数据 445 在数组的第 4 位入队成功
请输入入队的数据输入0则结束142
数据 142 在数组的第 5 位入队成功
请输入入队的数据输入0则结束0
*********************显示循环队列操作*********************
队列第 1 位数据为 123
队列第 2 位数据为 23
队列第 3 位数据为 34
队列第 4 位数据为 445
队列第 5 位数据为 142
*********************循环队列出队操作*********************
出队列输入1结束输入01
数据 123 出队列成功
出队列输入1结束输入01
数据 23 出队列成功
出队列输入1结束输入00
*********************显示循环队列操作*********************
队列第 1 位数据为 34
队列第 2 位数据为 445
队列第 3 位数据为 142
*********************循环队列入队操作*********************
请输入入队的数据输入0则结束100
数据 100 在数组的第 1 位入队成功
请输入入队的数据输入0则结束0
*********************显示循环队列操作*********************
队列第 1 位数据为 34
队列第 2 位数据为 445
队列第 3 位数据为 142
队列第 4 位数据为 100