求用c语言循环队列做队列的出对和入队

C语言,用数组实现队列的入队,出队函数编程_百度知道
C语言,用数组实现队列的入队,出队函数编程
,队列到a[10],第12个坐标点,a[1],原本a[10]的坐标点数值移到a[9],y)多于10个,有一系列坐标点(x假设数组a[10],依次类推,依次加入到数组a[0].,原本的a[9]的坐标点数值移到a[8].,加入到a[10].
提问者采纳
&int&这里是和将普通数组中的元素输出最大的不同之处;int&nbsp,将队列中的元素按照输入的顺序输出;del(int&\n&queue[]){&//将删除后的地方置0&queue[]);=n;queue[i-1]=queue[i];%d&&;printf(&&queue[1];for(int&=n;for(i=1;&&&&=i&}void&nbsp:&i&return&&//将i加入队列&end--;printf(&i++)&main(){&for(&nbsp!;queue[end]=0;//Top函数返回队头元素&i=2;i++)&nbsp!;);&n);add(int&nbsp,queue[i]);del(queue);for(int&&&nbsp!;//将要入队列n个元素&int&nbsp,i);}int&i&&int&queue[]){&{&nbsp.h&gt!,Top(queue));;printf(&n;x){&queue[]);del(int&\n&{&i++)&&//验证加入队列的元素!;//注意;i=1;queue[];//删除队头元素&}&nbsp,这里的函数始终return&printf(&&return&%d&add(queue,&amp!}void&Top(int&&i++)//输入n个元素&{&queue[++end]=x;;void&nbsp。,int&}&0;&&=n;i=1这样的话应该符合你的要求;i&&scanf(&queue[];&nbsp,int&nbsp:#include&%d&void&Top(int&queue[1];}&//验证输出已经出队列后的队列(数组)元素;&);&&add(int&queue[1000];end=0:&x);int&nbsp
提问者评价
其他类似问题
按默认排序
其他1条回答
a[i] = a[i+1]...;a[i] = ; 9; i &ltfor(i=0
c语言的相关知识
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁您还未登陆,请登录后操作!
用c语言或c++
实验内容:
1.采用链式存储实现栈的初始化、入栈、出栈操作。
2.采用顺序存储实现栈的初始化、入栈、出栈操作。
3.采用链式存储实现队列的初始化、入队、出队操作。
4.采用顺序存储实现循环队列的初始化、入队、出队操作。
5.在主函数中设计一个简单的菜单,分别测试上述算法。
*6.综合训练
1)利用栈实现表达式中括号匹配算法。
2)利用栈实现求一个十进制数的二进制表示算法。
基本要求:算法6的每个子功能尽可能写成函数形式
第一
验:循环队列
要求:1.循环队列的表示。
2.完成队列的几种基本操作(初始化,入队,出队,输出等)。
3.自定义数据进行操作。
4.程序要完整,可操作性好。
#define NULL 0
#define MAXSIZE 100
typedef int E
typedef struct
{ Elemtype *
void InitQueue(SqQueue *&Q)
Q=(SqQueue *)malloc(sizeof(SqQueue));
Q-&base=(Elemtype *)malloc( MAXSIZE *sizeof(Elemtype));
if(!Q-&base)
{ printf("The InitQueue is fail!");
Q-&front=Q-&rear=0;
void EnQueue(SqQu
第一
验:循环队列
要求:1.循环队列的表示。
2.完成队列的几种基本操作(初始化,入队,出队,输出等)。
3.自定义数据进行操作。
4.程序要完整,可操作性好。
#define NULL 0
#define MAXSIZE 100
typedef int E
typedef struct
{ Elemtype *
void InitQueue(SqQueue *&Q)
Q=(SqQueue *)malloc(sizeof(SqQueue));
Q-&base=(Elemtype *)malloc( MAXSIZE *sizeof(Elemtype));
if(!Q-&base)
{ printf("The InitQueue is fail!");
Q-&front=Q-&rear=0;
void EnQueue(SqQueue *Q,Elemtype e)
if( (Q-&rear+1)%MAXSIZE==Q-&front )
{ printf("\nThe EnQueue is fail!");
Q-&base[Q-&rear]=e;
Q-&rear=(Q-&rear+1)%MAXSIZE;
void DeQueue(SqQueue *Q,Elemtype *e)
if(Q-&rear==Q-&front)
printf("\nThe DeQueue is fail,the Queue is empty!");
*e=Q-&base[Q-&front];
Q-&front=(Q-&front+1)%MAXSIZE;
int main()
{ SqQueue *
Elemtype num,s;
InitQueue(que);
scanf("%d",&num);
while(num!=-1)
EnQueue(que,num);
scanf("%d",&num);
printf("\nThe result of DeQueue is :\n");
while (que-&front!=que-&rear)
DeQueue(que,&s);
cout&&s&&' ';
getchar();
参考资料:
栈的链式存储
#include&stdio.h&
#define elemtype int
#define MAXSIZE 100
typedef struct stack{
struct stack *
}STACK;
//链式存储的栈结构,及其相应算法
void InitStack(STACK *top)
{//初始化空栈
void DestroyStack(STACK *top)
{//销毁栈,将栈所占内存空间释放
int EmptyStack(STACK *top)
{//判断是否栈空,为空则返回1,否则返回0
int push(STACK *top, elemtype x)
{//元素x进栈操作,成功返回1,否则返回0
elemtype pop(STACK *top)
{//出栈操作,返回出栈元素
void Print(STACK *top)
{//依次输出栈顶到栈底的所有元素
int main(void)
{
STACK *top=NULL;
InitStack(top);
push(top,1);
push(top,2);
Print(top);
push(top,4);
push(top,5);
Print(top);
Print(top);
#include&stdlib.h&
#define elemtype int
#define MAXSIZE 100
typedef struct stack{
struct stack *
}STACK;
//链式存储的栈结构,及其相应算法
void InitStack(STACK *top)
{//初始化空栈
top-&next=NULL;
}
void DestroyStack(STACK *top)
{//销毁栈,将栈所占内存空间释放
while(p!=NULL){
top-&next=p-&
int EmptyStack(STACK *top)
{//判断是否栈空,为空则返回1,否则返回0
if(top-&next==NULL){
int push(STACK *top, elemtype x)
{//元素x进栈操作,成功返回1,否则返回0
p=(STACK *)malloc(sizeof(STACK));
p-&elem=x;
p-&next=top-&
top-&next=p;
return 1;
}
elemtype pop(STACK *top)
{//出栈操作,返回出栈元素
if(EmptyStack(top)){
printf("栈为空");
top-&next=p-&
void Print(STACK *top)
{//依次输出栈顶到栈底的所有元素
while(h!=NULL){
printf("%4d",h-&elem);
int main(void)
{
STACK *top=NULL;
top=(STACK *)malloc(sizeof(STACK));
InitStack(top);
push(top,1);
push(top,2);
push(top,4);
Print(top);
push(top,5);
Print(top);
Print(top);
DestroyStack(top);
}
大家还关注
printf("ERROR!");
while(s->top >= s->base)
printf("%d",*(s->top - 1));
}
}
void Push(Ss *s,int e)
{
if(s->top - s->base >= s->stacksize)
s->base = (int*)realloc(s,(s->stacksize + IS) * sizeof(int));
s->top = s->base + s->
s->stacksize += IS;
s->top ++;
}
void transfer(int n,int r)
{
InitStack(*Stack);//**************cra//sh的位置
//Stack->base = (int *)malloc(SIS * sizeof(int));
//if(!(Stack->base = (int *)malloc(SIS * sizeof(int))))
// exit(-1);
//Stack->top = Stack->
//Stack->stacksize = SIS;
while(n != 0)
int E = n%r;
Push(Stack,E);
n = (n-E)/r;
printstack(Stack);
}
void main()
{
int N = 0;
int R = 10;
printf("输入你想要转换的十进制整数:
scanf("%d",&N);
printf("你想把它转为几进制数?(输入阿拉伯数字)");
scanf("%d",&R);
transfer(N,R);//把N转换为R进制数;
system("pause");
}
">时间紧,没时间描述了,编译没错,运行cr...
for(int i=0;i>b[i];
f=index(s,t);
if(f==-1) cout<<"a字符串中没有b"<<
if(f==2) cout<<"a字符串中有b"<20分求一道C++问题~ 急....关于...C语言模拟试题题库
本试题来自:(2014年C语言模拟试题,)二、填空题一个队列的初始状态为空。现将元素A,B,C,D,E,F,5,4,3,2,1依次入队,然后再依次退队,则元素退队的顺序为______。正确答案:A,B,C,D,E,F,5,4,3,2,1答案解析:有,
您可能感兴趣的试题
填空题:()给定程序MODIl.C中函数fun的功能是:将一个八进制数字字符组成的字符串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包含5位八进制数字字符。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
文件MODIl.C内容如下:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int fun(char *p)
/**********found**********/
n=*P-’0’:
while(*p!=0)
/**********fonnd**********/
n=n*7+*P-’o’:
return n;
void main(
char s[6];
int i,n;
printf("Enter a string(Oeatal digits):");gets(s);
if(strlen(s)>5)
printf("Error:String too longer!\n\n");
for(i=0;s[i];i++)
if(s[i]<’0’|| s[i]>’7’)
printf("Error:%c not is ocatal digits!\n\n",s[i]);exit(0);
printf("The original string:");
n=fun(s);
printf("\n%s is eonvered to integer number:%d\n\n",s,n);
答案:有,答案解析:有,填空题:(/shiti/6709341/)若fp已正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为“读”而打开此文件:
fp=fopen( 【20】 );。答案:有,答案解析:有,
C语言模拟试题最新试卷
C语言模拟试题热门试卷10数据结构C语言版 非循环顺序队列求解迷宫问题
上亿文档资料,等你来发现
10数据结构C语言版 非循环顺序队列求解迷宫问题
数据结构C语言版非循环顺序队列求解迷宫问题;利用非循环顺序队列采用广度搜索法求解迷宫问题(一;编译环境:Dev-C++4.9.9.2;日期:日;*/;#include&stdio.h&;#include&malloc.h&;#defineM5//迷宫行数(包括外墙);#defineN5//迷宫列数(包括外墙);#de
数据结构C语言版 非循环顺序队列求解迷宫问题利用非循环顺序队列采用广度搜索法求解迷宫问题(一条路径)编译环境:Dev-C++ 4.9.9.2日期:日*/ #include &stdio.h&#include &malloc.h& #define M 5 // 迷宫行数(包括外墙)#define N 5 // 迷宫列数(包括外墙)#define D 4 // 移动方向数,只能取4和8。(8个,可斜行;4个,只可直走) // 移动数组,移动方向由正东起顺时针转struct{int x,y; #if D==8}move[D]={{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1},{-1,0},{-1,1}}; #endif #if D==4}move[D]={{0,1},{1,0},{0,-1},{-1,0}};#endif // 定义栈元素类型和队列元素类型,两者为相同类型。typedef struct{int x,y; // 当前点的行值,列值 // 前一点在队列中的序号} SElemType, QElemT #define STACK_INIT_SIZE 10 // 存储空间初始分配量#define STACKINCREMENT 2 // 存储空间分配增量// 栈的顺序存储表示 P46typedef struct SqStack{SElemType * // 在栈构造之前和销毁之后,base的值为NULL
SElemType *
// 栈顶指针
// 当前已分配的存储空间,以元素为单位
}SqS // 顺序栈// 顺序队列(非循环,因为是非循环的,所以需要判断是否溢出#define MAXQSIZE 5 // 最大队列长度(对于循环队列,最大队列长度要减1)
typedef struct{QElemType *// 初始化的动态分配存储空间 相当于一个数组
// 头指针,若队列不空,指向队列头元素,相当于一个数组下标// 尾指针,若队列不空,指向队列尾元素的下一个位置 相当于一个数组下标}SqQ // 构造一个空队列Qint InitQueue(SqQueue *Q){//分配定长的空间,相当于一个数组(*Q).base=(QElemType *)malloc(MAXQSIZE*sizeof(QElemType));
if(!(*Q).base) // 存储分配失败exit(0);(*Q).front=(*Q).rear=0; //初始化下标return 1;} // 销毁队列Q,Q不再存在int DestroyQueue(SqQueue *Q){if((*Q).base)free((*Q).base);(*Q).base=NULL;(*Q).front=(*Q).rear=0;return 1;} // 若队列Q为空队列,则返回1,否则返回0int QueueEmpty(SqQueue Q){if(Q.front==Q.rear) // 队列空的标志return 1;else} // 插入元素e为Q的新的队尾元素int EnQueue(SqQueue *Q,QElemType e){if((*Q).rear&=MAXQSIZE){ // 队列满,增加1个存储单元(*Q).base=(QElemType *)realloc((*Q).base,((*Q).rear+1)*sizeof(QElemType));if(!(*Q).base) // 增加单元失败return 0;}*((*Q).base+(*Q).rear)=e;(*Q).rear++;return 1;} // 若队列不空,则删除Q的队头元素,用e返回其值,并返回1,否则返回0
int DeQueue(SqQueue *Q,QElemType *e){if((*Q).front==(*Q).rear) // 队列空return 0;*e=(*Q).base[(*Q).front];(*Q).front=(*Q).front+1;return 1;} // 构造一个空栈S。int InitStack(SqStack *S){// 为栈底分配一个指定大小的存储空间(*S).base = (SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));
if( !(*S).base )exit(0);
// 存储分配失败(*S).top = (*S). // 栈底与栈顶相同表示一个空栈(*S).stacksize = STACK_INIT_SIZE;return 1;} // 若栈S为空栈(栈顶与栈底相同的),则返回1,否则返回0。int StackEmpty(SqStack S){if(S.top == S.base)elsereturn 0;} // 插入元素e为新的栈顶元素。int Push(SqStack *S, SElemType e){if((*S).top - (*S).base &= (*S).stacksize) // 栈满,追加存储空间
{(*S).base = (SElemType *)realloc((*S).base,((*S).stacksize + STACKINCREMENT) * sizeof(SElemType));
if( !(*S).base )exit(0); // 存储分配失败(*S).top = (*S).base+(*S).(*S).stacksize += STACKINCREMENT;}*((*S).top)++=e;// 这个等式的++ * 优先级相同,但是它们的运算方式,是自右向左
return 1;} // 若栈不空,则删除S的栈顶元素,用e返回其值,并返回1;否则返回0。 int Pop(SqStack *S,SElemType *e){if((*S).top == (*S).base)return 0;*e = *--(*S).// 这个等式的++ * 优先级相同,但是它们的运算方式,是自右向左
return 1;} // 广度搜索法求一条迷宫路径int Path(int maze[M][N]){SqQ // 采用非循环顺序队列QElemType qf, // 当前点和下一点SqS // 采用顺序栈int i,j,flag=1; // 当找到出口,flag=0int x1, y1;
// 终点的坐标 printf(&请输入入口的行,列(左上角为1,1)\n&);scanf(&%d,%d&,&qf.x, &qf.y); printf(&请输入出口的行,列(右下角为%d,%d)\n&,M-2, N-2); scanf(&%d,%d&,&x1, &y1);
qf.pre = -1; // 设入口(第一点)的上一点的序号=-1
maze[qf.x][qf.y] = -1; // 初始点设为-1(已访问过)
InitQueue(&q); EnQueue(&q,qf); // 起点入队
while(!QueueEmpty(q)&&flag) {
// 队列中还有没被广度搜索过的点且还没找到出口
DeQueue(&q,&qf); // 出队qf为当前点
for(i=0;i&D;i++) // 向各个方向尝试
qt.x=qf.x+move[i].x; // 下一点的坐标
qt.y=qf.y+move[i].y;
if(maze[qt.x][qt.y] == 1)
// 此点是通道且不曾被访问过
maze[qt.x][qt.y] = -1; // 已访问过
// 上一点处于队列中现队头减一的位置(没删除)
qt.pre=q.front-1;
EnQueue(&q,qt); // 入队
if(qt.x==x1&&qt.y==y1) // 到达终点
} } if(flag) // 搜索完整个队列还没到达终点
printf(&没有路径可到达终点!\n&);
return 0; } else {
InitStack(&s); // 初始化s栈
i=q.rear-1;
// i为待入栈元素在队列中的位置
while(i&=0)
// 没到入口
Push(&s,*(q.base+i));
i=(*(q.base+i)). // i为前一元素在队列中的位置
}包含各类专业文献、中学教育、幼儿教育、小学教育、文学作品欣赏、生活休闲娱乐、应用写作文书、外语学习资料、行业资料、10数据结构C语言版 非循环顺序队列求解迷宫问题等内容。 
 迷宫 栈和队列 暂无评价 7页 1下载券 数据结构C语言版 非循环... 7页 免费 求解迷宫的最短路径问题... 暂无评价 1页 2下载券喜欢此文档的还喜欢 ...  数据结构(C语言版)顺序队列(完整可运行程序)_理学_高等教育_教育专区。数据结构...} /*Use.cpp*/ /* main3-4.c 顺序队列(非循环),检验 bo3-4.c 的主程...  /* 数据结构 C 语言版 非循环队列 编译环境:Dev-C++ 4.9.9.2 日期: 2011 年 2 月 12 日 */ #include &stdio.h& #include &malloc.h& #include &...  // 队列的顺序存储结构(可用于循环队列和非循环队列) #define MAXQSIZE 5 //...数据结构C语言版 递归求... 3页 免费 迷宫非递归求解(c语言)源... 2页 ...  /* 数据结构 C 语言版 递归求解迷宫问题 用递归函数求解迷宫问题(求出所有解) 编译环境:Dev-C++ 4.9.9.2 日期: 2011 年 2 月 12 日 */ #include&stdio...  数据结构C语言迷宫求解问题(有要求和源代码)_计算机软件及应用_IT/计算机_专业资料。数据结构C语言迷宫求解问题(有要求和源代码)1、 迷宫求解设计一个迷宫求解程序...  数据结构栈求解迷宫问题(C... 3页 5财富值 数据结构C语言版 非循环顺... ...如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处...  数据结构课程设计(C语言... 25页 免费 数据结构课程设计 迷宫问... 23页 4...另外,求解该问题的一个重要问题是如何防止回溯时走重复节点,以避免发 生死循环...  数据结构c语言课程设计报告之迷宫_工学_高等教育_教育...下 4 个方向顺序试探下一 个位置;如果某方向可以...6.2 开发中遇到的问题和解决方法 问题: 在开始时...}

我要回帖

更多关于 求素数的c语言程序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信