山东大学数据结构课程设计报告(3)

2018-11-23 20:47

开始遍历顶点为a,如下:

6. 输入顶点为abcdef, 边为abacbcdedf 开始遍历的顶点为a如下图形界面:

九、总结

经过不到俩周的紧张的数据结构的课程设计,我学到了许多东西也深深体会到了做程序员的不易。从刚开始对课程的迷茫,不知道要怎么做,感觉无从下手到后来慢慢懂得了如何下手,这个过程是艰难的,但结果却是喜悦的,但是事情总是没有我们想的那样简单,问题接踵而来,对于我做的课程设计来说,那便是在界面上显示图形,查了好多资料都没有实例可供参考,最终不得不自己硬着头皮使劲想,才把代码写出来,可问题又来了,运行时出现了错误,在经过了n多遍的检查后才发现错误,改正错误。可是尽管过程如此艰难,但是当图形显示出来的那一刻,心里的喜悦却是无法言喻的,功夫不负有心人的感觉。同时我也明白了做好一个系统首先要做好的就是需求分析,包括数据需求和系统需求,这关系着你后来的设计功能是否满足要求以及设计的系统的强大性,这些东西我以前是不怎么会提前考虑的,总是直接下手代码,但是实践证明这个分析必不可少,它可以防止你写程序时,误入错误的方向。总之,有付出就有回报,你不逼自己一把,永远不知道自己有多优秀!话说回来,系统还有许多不足之处,这就需要以后学习更多的知识来弥补这个缺憾,争取做到最好!

附:参考文献

Visual C++ 从入门到精通; Visual C++ 实践指导教程。

附:程序清单(部分)

typedef enum{unvisited,visited}VisitIf; typedef struct EBox{

VisitIf mark; /* 访问标记 */

int ivex,jvex; /* 该边依附的两个顶点的位置 */

struct EBox *ilink,*jlink; /* 分别指向依附这两个顶点的下一条边 */ }EBox;

typedef struct{ VertexType data;

EBox *firstedge; /* 指向第一条依附该顶点的边 */ }VexBox;

typedef struct{

VexBox adjmulist[MAX_VERTEX_NUM];

int vexnum,edgenum; /* 无向图的当前顶点数和边数 */ }AMLGraph;

AMLGraph CreatGraph( CString vex,CString ege) {

AMLGraph G;

int i,j,k,cur=0; int m=-1;

VertexType va,vb;

G.vexnum= vex.GetLength(); G.edgenum = (ege.GetLength())/2;

EBox *p;

for(i=0;i

{

G.adjmulist[i].data = vex.GetAt(i);

for(k=0;k

{

va=ege.GetAt(++m);

vb=ege.GetAt(++m);

G.adjmulist[i].firstedge = 0; }

i=LocateVex(G,va); /* 一端 */ j=LocateVex(G,vb); /* 另一端 */ p=(EBox*)malloc(sizeof(EBox)); p->mark=unvisited; /* 设初值 */ p->ivex=i; p->jvex=j;

p->ilink=G.adjmulist[i].firstedge; /* 插在表头 */

G.adjmulist[i].firstedge=p;

p->jlink=G.adjmulist[j].firstedge; /* 插在表头 */ G.adjmulist[j].firstedge=p; /*插入j链表尾部*/ }

int Jiucuo( CString vex, CString ege, CString kkd)//判断所输入数据的正确性 {

int dds = vex.GetLength(); int bs = ege.GetLength(); }

return G;

int ksdd = kkd.GetLength(); char * D = new char[dds]; char * B = new char[bs]; for(int i = 0; i

D[i]= vex.GetAt(i);

for (int j=0; j< bs; j++)

B[j]= ege.GetAt(j);

if(dds == 0|| bs ==0 || ksdd ==0)

{::MessageBox(NULL,_T(\请输入数据\提示\

if(bs%2 !=0)

{::MessageBox(NULL,_T(\请输入边的个数为偶数\提示\

ERROR;}

if(ksdd >1)

{::MessageBox(NULL,_T(\请输入一个遍历顶点\提示\

ERROR;}

for(int m= 0; m

char h = D[m];

for(int n= m+1; n

if(D[n]==h) {::MessageBox(NULL,_T(\请输入不同的顶点\提示

\

} {

char b = B[mm++]; char k = B[mm];

for(int jj= mm+1; jj

char a = B[jj] ;

for(int mm= 0; mm


山东大学数据结构课程设计报告(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:河南省二级以上医院十大指标暨三好一满意考核评价细则

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: