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

作者&投稿:迟彭 (若有异议请与网页底部的电邮联系)
#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,你可以自己在源代码中修改。如果理解错了,那就给出测试用例,我再修改

什么代表病毒?什么代表变种?没有例子.

跪求数据结构课程设计(C语言版)代码,感激不尽~

在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。[1]
定义与声明
结构体的定义如下所示,struct为结构体关键字,tag为结构体的标志,member-list为结构体成员列表,其必须列出其所有成员;variable-list为此结构体声明的变量。[1]
struct tag {
member-list
} variable-list ;

在一般情况下,tag、member-list、variable-list这3部分至少要出现2个。以下为示例:[1]
//此声明声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c
//同时又声明了结构体变量s1
//这个结构体并没有标明其标签

struct {

int a;

char b;

double c;

} s1;


//同上声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c
//结构体的标签被命名为SIMPLE,没有声明变量
struct SIMPLE{

int a;

char b;

double c;

};

//用SIMPLE标签的结构体,另外声明了变量t1、t2、t3
struct SIMPLE t1, t2[20], *t3;
//也可以用typedef创建新类型
typedef struct{
int a;
char b;
double c;
} Simple2;
//现在可以用Simple2作为类型声明新的结构体变量
Simple2 u1, u2[20], *u3;

在上面的声明中,第一个和第二声明被编译器当作两个完全不同的类型,即使他们的成员列表是一样的,如果令t3=&s1,则是非法的。[1]
结构体的成员可以包含其他结构体,也可以包含指向自己结构体类型的指针,而通常这种指针的应用是为了实现一些更高级的数据结构如链表和树等。[1]
//此结构体的声明包含了其他的结构体
struct COMPLEX{
char string[100];
struct SIMPLE a;
};
//此结构体的声明包含了指向自己类型的指针
struct NODE{
char string[100];
struct NODE *next_node;
};

如果两个结构体互相包含,则需要对其中一个结构体进行不完整声明,如下所示:[1]
struct B;
//对结构体B进行不完整声明
//结构体A中包含指向结构体B的指针
struct A{
struct B *partner;
//other members;
};
//结构体B中包含指向结构体A的指针,在A声明完后,B也随之进行声明
struct B{
struct A *partner;
//other members;};

结构体作用
结构体和其他类型基础数据类型一样,例如int类型,char类型 只不过结构体可以做成你想要的数据类型。以方便日后的使用。[1]
在实际项目中,结构体是大量存在的。研发人员常使用结构体来封装一些属性来组成新的类型。由于C语言内部程序比较简单,研发人员通常使用结构体创造新的“属性”,其目的是简化运算。[1]
结构体在函数中的作用不是简便,其最主要的作用就是封装。封装的好处就是可以再次利用。让使用者不必关心这个是什么,只要根据定义使用就可以了。[1]
结构体的大小与内存对齐
结构体的大小不是结构体元素单纯相加就行的,因为我们主流的计算机使用的都是32bit字长的CPU,对这类型的CPU取4个字节的数要比取一个字节要高效,也更方便。所以在结构体中每个成员的首地址都是4的整数倍的话,取数据元素时就会相对更高效,这就是内存对齐的由来。每个特定平台上的编译器都有自己的默认“对齐系数”(也叫对齐模数)。程序员可以通过预编译命令#pragma pack(n),n=1,2,4,8,16来改变这一系数,其中的n就是你要指定的“对齐系数”。[1]
规则:
1、数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员的对齐按照#pragma pack指定的数值和这个数据成员自身长度中,比较小的那个进行。[1]
2、结构(或联合)的整体对齐规则:在数据成员完成各自对齐之后,结构(或联合)本身也要进行对齐,对齐将按照#pragma pack指定的数值和结构(或联合)最大数据成员长度中,比较小的那个进行。[1]
3、结合1、2可推断:当#pragma pack的n值等于或超过所有数据成员长度的时候,这个n值的大小将不产生任何效果。

电脑被感染病毒都还可以计算,软件做出来应该就是非常的强大了。

数据结构题目
答:4、调试分析:测试数据,测试输出的结果和每个模块设计和调试时存在问题的思考(问题是哪些?问题如何解决?),算法的改进设想。5、课设总结:总结可以包括:课程设计过程的收获、遇到问题、遇到问题解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考、在课程设计过程中对《数据结构》课程的...

数据结构课程设计
答:我这有个停车场管理系统跟你的轮船渡口管理系统差不多!!改一下就能用!!include<iostream.h> include<string.h> include<stdlib.h> //free()函数功能 const int Max_Park=1;int biandao=0;//便道上有多少车 //...struct Car { char pattent;//车辆类型,a=小轿车,b=客车,c=大...

数据结构课程设计的需求分析怎么写
答:四 测试与分析 测试数据,输出测试的结果,这里的测试数据应该完整和严格。并对结果进行分析。五 总结 总结可以包括 : 课程设计过程的收获、遇到问题、遇到问题解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考、在课程设计过程中对《数据结构》课程的认识等内容。

我的数据结构课程设计!!!
答:10.哈夫曼编\译码器我有啊 define max 50 > struct a > { > int weight;> int parent,lchild,rchild;> };> struct b > { > char cd[max];> int start;> };> main()> { > struct a ht[2*max];> struct b hcd[max],d;> int i,j,k,n,c,s1,s2,m1,m2,f;> printf("...

数据结构的课程设计,C语言版本的,需要完整代码
答:数据结构的课程设计,C语言版本的,需要完整代码5、车厢调度问题问题描述:假设停在铁路调度站(如教科书中图3.1(b)所示)入口处的车厢系列的编号依次为1,2,3,…n。设计一个程序,求出... 数据结构的课程设计,C语言版本的,需要完整代码5、车厢调度问题问题描述:假设停在铁路调度站(如教科书中图3.1(b)所示)入口处...

求数据结构的课程设计题目的解答
答:我有这样的数据结构课程设计

!!!高分,几个数据结构题目,求答案,高分!!!
答:!!!高分,几个数据结构题目,求答案,高分!!! 1,一元多项式计算任务,能够按照指数降序排列建立并输出多项式,能够完成两个多项式的相加相减运算,并输出结果。2...printf("欢迎使用课程设计整合版"); printf("请选择您想运行的程序:\n"); printf("1.一元多项式的计算。\n"); printf("2.建立二叉树,层序,中序遍历...

数据结构课程设计作业:求任意两点的最短路径问题,写个完整的程序..急 ...
答:一:include "stdafx.h"include <limits> include <iostream> include <fstream> using namespace std;const int MAXINT = numeric_limits<int>::max();template <class Type> void Dijkstra(int n, int v, Type dist[], int prev[], Type** c){ bool *s = new bool[n+1];int i,...

求大神帮忙写个程序:数据结构课程设计的题目 题目见补充处 希望大神们...
答:关于线性方程组的解,有三个问题值得讨论:(1)、方程组是否有解,即解的存在性问题;(2)、方程组如何求解,有多少个解;(3)、方程组有不止一个解时,这些不同的解之间有无内在联系,即解的结构问题。高斯消元法,最基础和最直接的求解线性方程组的方法,其中涉及到三种对方程的同解变换:(...

数据结构课程设计(学生证管理程序)
答:请设计一个学生证的管理程序,该程序应该具有下列功能:(1) 通过键盘输入某位学生的学生证信息。学生证包含的信息请参看自己的学生证;【题目要求】(1) 存储结构采用顺序表或链表;(2) 用本学期所学算法实现各模块;(3) 主函数设计一个菜单,通过菜单进入各模块测试。要求用数据结构(c语言...