数据结构

位置:IT落伍者 >> 数据结构 >> 浏览文章

北大“数据结构”上机考试题


发布日期:2021年10月15日
 
北大“数据结构”上机考试题

求拓朴排序后结果及用矩阵表示输入形式为n (就是上机练习题上的哪个题不过多加了一个用矩阵表示)

输入一串整数以相反次序输出

题我做的答案是这样的题太简单就不用了

// 有点未加判断矩阵输出及拓扑排序

#include

#include

#include

#define MAX

typedef struct {

int arcs[MAX][MAX];

int vexnum;

}Mgraph;

void input(Mgraph *mgraphint iint *count)

{

int abc=;

for(int j=;j

for(int k=0;k

mgraph->arcs[j][k]=0;

while(1){

printf("输入(i j),(-1 -1)结束:");

scanf("%d%d",&a,&b);

if(a==-1 && b==-1)

break;

else

{

mgraph->arcs[a]=1;continue;

}

}

for (int k=0;k

int c=0;

for(int m=0;m

if(mgraph->arcs[m][k]==1)

c++;

}

count1[k]=c;

}

printf("\n矩阵为:\n");

for(int l=0;l

for(int m=0;m

printf("%3d",mgraph->arcs[l][m]);

c1=c1+1;

if(c1==i){

printf("\n");

c1=0;

}

}

}

//拓扑排序

void topsort(Mgraph * mgraph,int i,int *count){

int a,b,c=0,s=-1;

for(a=0;a

if(count[a]==0){

count[a]=s;

s=a;

}

}

while(s!=-1){

printf("V(%d) ",s);

c++;

a=s;

s=count[a];

for(b=0;b

if(mgraph->arcs[a]){

count--;

if (count==0){

count=s;

s=b;

}

}

}

}

}

void main(){

Mgraph mgraph;

int i;

printf("输入顶点个数:");

scanf("%d",&i);

int count1[MAX];

input(&mgraph,i,count1);

topsort(&mgraph,i,count1);

}

               

上一篇:《数据结构》哈工大2013年实践上机试题

下一篇:数据结构 10.17 计数基数排序