数据结构(C语言编写完整可运行程序):设有队列Q、栈S,设计算法利用栈S将队列Q中的元素逆向输出

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/01 13:01:10
数据结构(C语言编写完整可运行程序):设有队列Q、栈S,设计算法利用栈S将队列Q中的元素逆向输出

数据结构(C语言编写完整可运行程序):设有队列Q、栈S,设计算法利用栈S将队列Q中的元素逆向输出
数据结构(C语言编写完整可运行程序):设有队列Q、栈S,设计算法利用栈S将队列Q中的元素逆向输出

数据结构(C语言编写完整可运行程序):设有队列Q、栈S,设计算法利用栈S将队列Q中的元素逆向输出
这是我帮你写的代码,
# include
# include
# include
# define size 6
typedef struct Node
{
int data;
struct Node *pNext;
}NODE,*PNODE;
struct stack
{
PNODE ptop;
};
struct Queue
{
int *pBase;
int front;
int rear;
};
void init_s(stack *);
void init_q(Queue *);
void Enqueue(Queue *,int);
void OutQpushS(Queue *,stack *);
void PopOut(stack *,Queue *);
void Out(Queue *);
int main(void)
{
stack S;//建立栈S
init_s(&S);
Queue Q;//建立循环队列Q init_q(&Q);
Enqueue(&Q,1);
Enqueue(&Q,2);
Enqueue(&Q,3);
printf("逆置后对列中的元素是\n");
OutQpushS(&Q,&S);//出对入栈
PopOut(&S,&Q);//出栈并入队
Out(&Q);//对Q出对
return 0;}
void init_s(stack *pS)
{
pS->ptop = NULL;
}
void init_q(Queue *pQ)
{
pQ->pBase = (int *)malloc(sizeof(int) * size);
if (pQ->pBase == NULL)
{
printf("动态内存分配失败!");
exit(-1);
}
pQ->front = pQ->rear = 0;}
void Enqueue(Queue * pQ,int val)
{
pQ->rear = (pQ->rear + 1) % size;
pQ->pBase[pQ->rear] = val;}
void OutQpushS(Queue *pQ,stack *pS)
{
while (pQ->front != pQ->rear)
{
PNODE pNew = (PNODE)malloc(sizeof(NODE));
if (pNew == NULL)
{
printf("动态内存分配失败!\n");
exit(-1);
}
pQ->front = (pQ->front + 1) % size;
pNew->data = pQ->pBase[pQ->front];
pNew->pNext = pS->ptop;
pS->ptop = pNew;
}
}
void PopOut(stack *pS,Queue *pQ)
{
while (pS->ptop != NULL)
{
pQ->rear = (pQ->rear + 1) % size;
pQ->pBase[pQ->rear]= pS->ptop->data;
pS->ptop = pS->ptop->pNext;
}
}
void Out(Queue *pQ)
{
while (pQ->front != pQ->rear)
{
pQ->front = (pQ->front + 1) % size;
printf("%d\n",pQ->pBase[pQ->front]);
}
return;}

数据结构(C语言编写完整可运行程序):设有队列Q、栈S,设计算法利用栈S将队列Q中的元素逆向输出 求c语言编写椭圆面积的程序,完整的 用C语言编写一个可以求输入的两个数的最大公约数和最小公倍数的程序.可以运行,不能得到答案 编写一个c语言程序直到运行,请描述每一步生成的文件类型. 编写完整程序:计算并输出50以内(含50)的所有偶数之和 用c语言 用C语言编写简易计算器可实现两位数以上的四则运算.C语言编写单片机程序. C 语言 编写程序,计算分段函数: C语言编写程序四则运算法则 编写C语言程序从n(20 编写以下框图的C语言程序 帮忙用C语言编写解一元二次方程 (ax)的平方+bx+c=0 的完整程序 n 个数种取n/2的数的算法可运行的C语言程序 下列C语言程序哪有错误?用C语言编写编写程序哪有错误? 用C语言编写一段程序,求两个集合的笛卡尔乘积.并对运行结果截图.一定要对运行结果截图啊, 大一C语言作业.编写程序输入两个整数,输出它们的商和余数.要可以运行的啊.不能运行的别发了 用c语言编写一段程序,求两个集合的交要c语言的,直接粘过来在c++里就可以运行的那种! 用C语言 计算1~N之间所有奇数之和(简单for循环)注意我需要的for循环编写,希望大神门能编写好一个完整的测试运行OK的发过来, 编写C语言程序,计算下列公式中S的值(n是运行程序时输入的一个正整数)S=1*2-2*3+3*4-4*5+.+(-1)^(n-1)*n*(n+1)