求问!!!数据结构课程设计题:病毒测试程序。(c语言)

数据结构课程设计题:病毒测试程序。(c语言)
病毒测试程序
本题的任务是:
当整个网络被感染后,计算有多少台机器被某个特定变种所感染。
输入要求:
输入由若干组测试数据组成。
每组数据的第1行包含2个整数M和N(1≤M,N≤500),接下来是一个M*N的矩阵表示网络的初始感染状态,其中的正、负整数的意义如题目描述中所定义。
下面一行给出一个正整数Q,是将要查询的变种的个数。接下去的Q行里,每行给出一个变种的类型。
当M或N为0时,表示全部测试结束,不要对该数据做任何处理。
输出要求:
对每一组测试,在一行里输出被某个特定变种所感染的机器数量。

哪个大侠做过,给我一份吧。。。。我不太懂问题的意思,想参考一下。或发邮箱:464514822@qq.com

第1个回答  2012-12-24
#include <stdio.h>
#include <stdlib.h>
int iGlobal;
typedef struct tagNode
{
int iData;
int iCount;
struct tagNode *pLeft;
struct tagNode *pRight;
}Node;
Node *Add(Node *a, Node *pNow, int iVal)
{
if (iGlobal == 0)
{
a[0].pLeft = a[0].pRight = NULL;
a[0].iCount = 1;
a[0].iData = iVal;
++iGlobal;
}
else
{
if (pNow == NULL)
{
pNow = a + (iGlobal++);
pNow->pLeft = pNow->pRight = NULL;
pNow->iCount = 1;
pNow->iData = iVal;
}
else
{
if (iVal < pNow->iData)
{
pNow->pLeft = Add(a, pNow->pLeft, iVal);
}
else if (iVal == pNow->iData)
{
++pNow->iCount;
}
else
{
pNow->pRight = Add(a, pNow->pRight, iVal);
}
}
}
return pNow;
}
Node *Find(Node *a, int iVal)
{
if (a == NULL)
{
return NULL;
}
else
{
if (iVal < a->iData)
{
return Find(a->pLeft, iVal);
}
else if (iVal == a->iData)
{
return a;
}
else
{
return Find(a->pRight, iVal);
}
}
}
int main(void)
{
int m, n, i, q, temp;
Node *a = NULL;
Node *p = NULL;
FILE *fp;
if ((fp = fopen("data.txt", "r")) == NULL)
{
printf("File not found!\n");
return -1;
}
fscanf(fp, "%d %d", &m, &n);
do
{
iGlobal = 0;
if ((a = (Node *)malloc(m * n * sizeof(Node))) == NULL)
{
return -1;
}
for (i=0; i<m*n; ++i)
{
fscanf(fp, "%d", &temp);
Add(a, a, temp);
}
fscanf(fp, "%d", &q);
for (i=0; i<q; ++i)
{
fscanf(fp, "%d", &temp);
p = Find(a, temp);
if (p == NULL)
{
putchar('0');
}
else
{
printf("%d", p->iCount);
}
if (i != q-1)
{
putchar(' ');
}
else
{
putchar('\n');
}
}
if (a != NULL)
{
free(a);
a = NULL;
}
fscanf(fp, "%d %d", &m, &n);
}while (m != 0 && n != 0);
return 0;
}
根据我的理解文件中的数据应该是这样的:
3 4
1 1 1 4
2 2 2 4
3 3 3 4
4
1
2
3
4
0 0
每一个整数或负数表示每种病毒变种,这个解答的思路是建立二叉排序树,存放数据的文件名为data.txt,你可以自己在源代码中修改。如果理解错了,那就给出测试用例,我再修改来自:求助得到的回答本回答被提问者采纳
第1个回答  2012-12-24
什么代表病毒?什么代表变种?没有例子.追问

题目就是这样写的,我也不明白。。。。现在还没读懂题目呢TAT给我个提示或者大致思路也行。。。

数据结构课程设计《报数游戏》队列问题 c语言
约瑟夫环问题:如果你用队列做的话,设一个计数器,如果计数器<m就出队后再入队,等于m时那个元素只出队不入队,输出这个元素并且让m等于0。循环到队列为空就行了。

关于数据结构的问题,用C语言描述
但作为考研课程来说,本章的考查重点可能与大学里的程序语言所关注的不太一样,下面会作介绍。广义表的概念,是数据结构里第一次出现的。它是线性表或表元素的有限序列,构成该结构的每个子表或元素也是线性结构的,所以,这一章也归入线性结构中。本章的考查重点有:1.多维数组中某数组元素的position求解。一般是给出...

数据结构 课程设计C语言版 本人现..跪求一道课程设计答案 有哪..位的...
c=i-1; \/*给代表菜单选项的整数赋值*\/ } textbackground(BLACK); \/*设置背景颜色为黑色*\/ window(1,1,80,25); \/*恢复原窗口大小*\/ return c; \/*返回代表菜单选项的整数值*\/}\/*初始化函数*\/void init(){ First=NULL; Last=NULL;}\/*输入数据,创建双链表*\/void create(){ int x; \/*记录行坐标...

数据结构课程设计(C语言版) 一元稀疏多项式的运算
⑵ 输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……cn,en,其中n是多项式的项数,ci,ei分别为第i项的系数和指数。序列按指数降序排列;⑶ 多项式A和B相加,建立多项式A+B,输出相加的多项式;⑷ 多项式A和B相减,建立多项式A-B,输出相减的多项式;⑸ 设计一个菜单,上述操作要求的...

帮忙数据结构课程设计代码(C语言)
struct node \/*结点的数据结构*\/ { int a;} ;struct Stack \/*栈的结构*\/ { struct node *A;int tos;int size;};init(struct Stack *S,int size) \/*栈的初始化*\/ { S->A=(struct node *)malloc(sizeof(struct node)*size);if(S->A==NULL){printf("out of space");...

跪求数据结构课程设计(C语言版)代码,感激不尽
《数据结构课程精讲教案合集-复旦大学(共计1061页).pdf 》百度网盘免费资源下载 链接: https:\/\/pan.baidu.com\/s\/15uwjtHgKKzZdheWFQC21pQ ?pwd=abzc 提取码: abzc

一道C语言课程设计题目,求大老解答
首先,你应该把实际的问题抽象成一个能够用数据表示出来的问题(数据结构部分),这个题目中包括,单词,相同单词的数量,相同单词分别占各自文章单词总数的百分比,至于相同单词出现的次数,这个和相同单词出现的数量有什么不同,表示暂时没看出来,你可以定义一个结构体VocabularyInfo,记录单词,单词在本文章出现...

数据结构内容简介
《数据结构》(C语言版)是一本专为数据结构课程设计的教材,同时也能作为学习数据结构及其算法的C程序设计的重要参考资料。它以C语言为基础,深入探讨了数据结构的各个方面。教材的前半部分着重于抽象数据类型,详细介绍了各种基本数据结构的理论及其在实际应用中的体现。而后半部分则集中讨论查找和排序的...

清华大学计算机系列教材:数据结构内容简介
清华大学计算机系列教材中,《数据结构》(C语言版)是一部专为数据结构课程设计的教材,它不仅适合学习数据结构及其算法的C程序设计,更是理想的辅助教材。该书的主体部分首先从抽象数据类型的角度深入剖析各种基础数据结构及其实际应用,这部分内容与1992年出版的第二版《数据结构》保持了高度一致。但本书...

求一份数据结构课程设计报告
求一份数据结构课程设计报告 时间有点赶,12.3中午前。哪些编程高手帮我编一下吧~~~一、课程设计内容:1.用C或C++语言编写一个程序实现学员成绩管理,每个学员包括3门课的成绩,从键盘输入学员信息。2.学员信息... 时间有点赶,12.3中午前。哪些编程高手帮我编一下吧~~~一、课程设计内容: 1.用C或C++语言编写一...

相似回答