数据结构C语言习题求解……由计算机随即生产20个100以内的随机整数。(链式队列的应用)

链式队列的应用:由计算机随即生产20个100以内的随机整数。

分别建立三个链式队列Q0、Q1、Q2,分别存放能被3整除的随机数、 被3整除余1的随机数和被3整除余2的随机数。最后输出三个队列中的随机数。(需要指出每个队列的元素个数)

需要的函数:InitQueue(初始化)、EmptyQueue(是否为空)、QueueLength(队列长度)、EnQueue(进队列)、DeQueue(出队列)

第1个回答  2013-11-14
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
struct val
{
int data;
struct val *node;
};
typedef struct val li;
typedef li *lin;
lin linQ[3];
void InitQueue(); //初始化
lin EnQueue(lin lina,int data); //进队列
int EmptyQueue(lin lina); //是否为空
int QueueLength(lin lina); //队列长度
void DeQueue(lin lina,int len,int i); //出队列void main()
{
int len;
int data;
int Queue;
InitQueue();
for(len=0;len<20;len++)
{
data=rand()%100;
Queue=data%3;
if(Queue<3)
linQ[Queue]=EnQueue(linQ[Queue],data);
} for(len=0;len<3;len++)
{
data=QueueLength(linQ[len]);
if(EmptyQueue(linQ[len]))
DeQueue(linQ[len],data,len);
else
printf("NULL");
}
getch();
}
void InitQueue()
{ int len;
for(len=0;len<3;len++)
linQ[len]=NULL;
srand((unsigned int)time(NULL));
}lin EnQueue(lin lina,int data)
{
lin merory;
lin linb;
merory=(lin)malloc(sizeof(li));
merory->data=data;
merory->node=NULL;
if(!merory)
{
return NULL; } if(!lina)
{
return merory;
}
linb=lina; while(linb->node!=NULL)
linb=linb->node; linb->node=merory;
return lina;
}
int EmptyQueue(lin lina)
{
if(lina)
return 1;
return 0;
}
int QueueLength(lin lina)
{
int len=0;
lin linb;
linb=lina;
while(linb!=NULL)
{
len++;
linb=linb->node;
}
return len;
}
void DeQueue(lin lina,int len,int i)
{
lin linb;
linb=lina;
printf("A total of %d can be divided exactly by 3 more than %d random Numbers:\n\n",len,i);
while(linb!=NULL)
{
printf("%d ",linb->data);
linb=linb->node;
}
printf("\n\n");
}
第2个回答  2013-11-14
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define elemt int
typedef struct qnode{
elemt data;
struct qnode *next;
}node,*nd;
typedef struct{
nd front;
nd rear;
}lq;
lq InitQueue (void){
lq t;
t.front=t.rear=(nd )malloc(sizeof(node));
if(!t.front)
exit(0);
t.front->next=NULL;
return t;
}
lq EnQueue (lq t,elemt e){
nd p=(nd)malloc(sizeof(node));
if(!p) exit(0);
p->data =e;
p->next=NULL;
t.rear->next=p;
t.rear=p;
return t;
}
lq DeQueue (lq t){
elemt e;
nd p;
if(t.front==t.rear) exit(0);
p=t.front->next;
e=p->data;
t.front->next=p->next;
free(p);
return t;
}
int QueueLength(lq t){
int n=0;
nd p;
p=t.front;
for(;p->next!=NULL;n++){
p=p->next;
}
return n;
}void print(lq t){
nd p;
p=t.front->next;
while(p!=NULL){
printf("%d ",p->data);
p=p->next;
}
printf("\n个数为%d\n",QueueLength(t));
}
void main(){
int i=0,j;
lq Q0,Q2,Q1;
Q0=InitQueue();
Q1=InitQueue();
Q2=InitQueue();
srand((unsigned int)time(NULL));
for(;i<20;i++){
j=rand()%100;
switch(j%3){
case 0:Q0=EnQueue(Q0,j);break;
case 1:Q1=EnQueue(Q1,j);break;
case 2:Q2=EnQueue(Q2,j);break;
}
}
print(Q0);
print(Q1);
print(Q2); }本回答被网友采纳

关于数据结构的问题,用C语言描述
所以,理解栈与队列,是走向DS高手的一条必由之路,。学习此章前,你可以问一下自己是不是已经知道了以下几点:1.栈、队列的定义及其相关数据结构的概念,包括:顺序栈,链栈,共享栈,循环队列,链队等。栈与队列存取数据(请注意包括:存和取两部分)的特点。2.递归算法。栈与递归的关系,以及借助栈将递归转向于非递归的...

数据结构(C语言版)的中国铁道出版社出版图书
书名:数据结构(C语言版)套系名称:高职高专计算机实用教程系列规划教材书号:978-7-113-12943-9 版次:1-1 开本:16开 页码:236页作者:王桂芝出版时间:2011-08-01定价:24 元出版社:中国铁道出版社适用专业:计算机专业 本书重点讨论了各种基本数据结构的类型描述、常用算法实现及其应用。全书...

计算机专业考研基础内容
?pwd=thmu 提取码:thmu 2019考研计算机-基础班【完】|2019计算机【文都】基础课-组成原理√|2019计算机【文都】基础课-数据结构|2019计算机【文都】基础课-计算机网络√|2019计算机【文都】基础课-操作系统√|2019计算机【文都】基础课-C语言|008—19考研计算机基础课程C语言(8).flv|007—19考研计算...

数据结构的问题~
一、选择题 1 计算机算法必须具备输入、输出、()等5个特性。 A 可行性、可移植性和可扩展性 B 可行性、确定性和有穷性 C 确定性、有穷性和稳定性 D 易读性、安全性和稳定性 2 在数据结构中,从逻辑上可以把数据结构分为( ) A 动态结构和静态结构 B 紧凑结构和非紧凑结构 C 内容结构和外部结构 D 线性...

计算机应用基础知识
2. 链式存储结构 链式存储结构就是在每个结点中至少包括一个指针域,用指针来体现数据元素之间逻辑上的联系。这种存储结构可把逻辑上相邻的两个元素存放在物理上不相邻的存储单元中;还可以在线性编址的计算机存储器中表示结点之间的非线性联系。 链式存储结构的主要特点是:(1)结点中除自身外,还有表示连接信息的指针...

计算机二级C语言主要考点?
循环队列:s=0表示队列空,s=1且front=rear表示队列满 5 线性链表 数据结构中的每一个结点对应于一个存储单元,这种存储单元称为存储结点,简称结点。 结点由两部分组成:(1)用于存储数据元素值,称为数据域;(2)用于存放指针,称为指针域,用于指向前一个或后一个结点。 2008-2-21 10:07 回复 斗牛士 黛石Sara...

计算机研究生考试要考哪几门啊
计算机历年考研真题 链接:https:\/\/pan.baidu.com\/s\/1S0XYQQBxtaFkIAOpoymp9Q 提取码:cugd 若资源有疑问欢迎追问

全国计算机2级C语言需要买什么资料
买关于关于c语言的资料就行,例如《全国计算机等级考试全能教程:2级C语言》。全国计算机2级C语言的要求是熟悉 Visual C++ 6.0 集成开发环境、掌握结构化程序设计的方法,具有良好的程序设计风格、掌握程序设计中简单的数据结构和算法并能阅读简单的程序。还能在 Visual C++ 6.0 集成环境下,能够编写简单...

...提供一下浙大出版社出版陆汉权主编的《大学计算机基础教程》的课后答...
1.计算机系统由硬件系统和软件系统组成。计算机体系结构主要研究硬件组成,冯•诺依曼体系结构也叫冯•诺依曼模型,主要是:(1)计算机有五个组成部分,分别是输入、存储、处理、控制和输出。(2)计算机的程序和程序运行所需要的数据以二进制形式存放在计算机的存储器中。(3)计算机程序的执行由计算机控制器根据程序的指令...

计算机4级都考什么?
二、数据结构与算法 ⒈基本概念:⑴数据结构的基本概念。 ⑵算法的描述与分析。 ⒉线性表: ⑴线性表的逻辑结构。 ⑵线性表的顺序存储结构。 ⑶线性表的链式存储结构。 ⒊数组: ⑴数组的定义与运算。 ⑵数组的顺序存储结构。 ⑶矩阵的压缩存储。 ⒋栈与队列: ⑴栈的定义和运算。 ⑵栈的存储结构。 ⑶...

相似回答
大家正在搜