关键词不能为空

当前您在: 主页 > 英语 >

数据结构-拓扑排序-实验报告与代码

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-01 21:44
tags:

-

2021年2月1日发(作者:鲍文病)
















实验报告七


----


拓扑排序







< br>分













2


、实现有向图的创建、遍历




1


、采用邻接表法的存储结构来定义 有向图



3


、实现栈的创建及其基本操 作(进栈、退栈、判空)



4


、求图中顶点的入度


















< br>数

























< br>流

























< br>是








1


















< br>输






2




















< br>


3
















,并




。当






,进

< p>















a



退










V



< br>(


b










Vj



直< /p>





Vk




Vk








4









,直



< p>








。如

< br>每





,则









序< /p>

























< br>栈







































信息工程学院







1














设定栈的抽象数据类型定义:



ADT Stack {


数据对象:


D={


a


i


|


a


i



CharSet


,i=1,2,3,…. .,n,n>=0;}



数据关系:


R ={<


a


i


?


1



a


i


> |


a


i


?


1< /p>



a


i


∈D,i =2,…,n}





存储结构:



(1)


表结点










typedef struct ArcNode


{



i


nt adjvex;



s


truct ArcNode *nextarc;


}ArcNode;


(2)


链表的存储结构



typedef struct VNode


{



i


nt data;



A


rcNode *firstarc;


}VNode,AdjList[MAX_VEXTEX_NUM];


(3)


图的存储结构





































信息工程学院







2




















typedef struct


{



A


djList vertices;



i


nt vexnum, arcnum;


}ALGraph;


(4)


栈的存储结构



typedef struct



{



E


lemType *base;



E


lemType *top;



i


nt stacksize;


}SqStack;



< p>
















的< /p>









< p>
















所< /p>







。包



:人





< p>


、主







< br>设

















1







1



< br>迎









2


)输入顶点与边的关系,并得到拓扑排序







































信息工程学院







3

















2







1








void InitStack(SqStack *S)//







{






S->base = (ElemType *) malloc(STACK_INIT_SIZE * sizeof


(ElemType));






if (!S->base) {










printf(











exit(1);






}






S->top = S->base;






S->stacksize = STACK_INIT_SIZE;



}





2








int Pop(SqStack *S, ElemType *e)//







{






if (S->top == S->base) {










return ERROR;






}





































信息工程学院







4



















*e = *--S->top;






return 0;


}


3








void Push(SqStack *S, ElemType e)//




操< /p>




{






if (S->top - S->base >= S->stacksize) {










S->base = (ElemType *) realloc(S


->base, (S->stacksize +


STACKINCREMENT) * sizeof (ElemType));











if (!S->base) {














printf(















exit(1);










}










S->top = S->base + S->stacksize;










S->stacksize += STACKINCREMENT;






}






*S->top++ = e;


}


4











int StackEmpty(SqStack *S)//










{






if (S->top == S->base)










return OK;






else










return ERROR;


}


5



构< /p>










void CreatGraph(ALGraph *G)//






{






int m, n, i;






ArcNode *p;






printf(


******n






printf(


















使







n


















printf(





















----n


p rintf(


n



printf(











:



scanf(



for (i = 1; i <= G


->vexnum; i++) {





































信息工程学院







5



















































G->vertices[i].data = i;







G->vertices[i].firstarc = NULL;



}


for (i = 1; i <= G


->arcnum; i++) //


输< /p>









< p>


{






printf(

< br>请















:






scanf(







while (n < 0 || n > G


->vexnum || m < 0 || m > G


->vexnum) {














printf(

< br>输

















:














scanf(











}










p = (ArcNode*) malloc(sizeof (ArcNode));











if (p == NULL) {














printf(















exit(1);










}










p->adjvex = m;










p->nextarc = G->vertices[n].firstarc;










G->vertices[n].firstarc = p;







}



}


6












void FindInDegree(ALGraph G, int indegree[])//










{






int i;






for (i = 1; i <= i++) {











indegree[i] = 0;






}






for (i = 1; i <= i++) {











while (es[i].firstarc) {















indegree[es[i].firstarc


->adjve x]++;














es[i].firstarc = es[i].firstarc


->nextarc;










}






}


}


7










void TopologicalSort(ALGraph G) //








{





































信息工程学院







6

-


-


-


-


-


-


-


-



本文更新与2021-02-01 21:44,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/595297.html

数据结构-拓扑排序-实验报告与代码的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文