作业16Word文件下载.docx
- 文档编号:19722660
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:21
- 大小:17.85KB
作业16Word文件下载.docx
《作业16Word文件下载.docx》由会员分享,可在线阅读,更多相关《作业16Word文件下载.docx(21页珍藏版)》请在冰豆网上搜索。
virtual~LS();
*top;
LS<
LS()
top=NULL;
~LS()
while(top)
{
LLN<
*p=top->
link;
deletetop;
top=p;
}
boolLS<
IsEmpty()
returntop==NULL?
true:
false;
pop()
if(IsEmpty())
returnfalse;
else
*p=top;
top=top->
deletep;
returntrue;
voidLS<
push(Tx)
top=newLLN<
(x,top);
GetTop(T&
x)
x=top->
data;
#include<
assert.h>
iostream.h>
template<
classQueC
voidMakeEmpty();
boolIsFull();
TGetFront();
boolDeQ();
boolEnQ(Tx);
QueC(intsz=10);
virtual~QueC();
intrear,front;
T*elements;
intmaxSize;
QueC<
QueC(intsz):
front(0),rear(0),maxSize(sz)
elements=newT[maxSize];
assert(elements!
=NULL);
~QueC()
delete[]elements;
boolQueC<
EnQ(Tx)
if(IsFull()==true)
elements[rear]=x;
rear=(rear+1)%maxSize;
returntrue;
DeQ()
if(IsEmpty()==true)
front=(front+1)%maxSize;
TQueC<
GetFront()
if(IsEmpty()==true)
returnelements[front];
return(front==rear)?
IsFull()
return((rear+1)%maxSize==front)?
voidQueC<
MakeEmpty()
front=rear=0;
classGM
voidTopoSt();
voidBFS();
voidDFS();
voidDFS(inti,bool*v);
intInRank(intn);
intRank(intm);
boolCreate();
int*edge;
char*ver;
intnumV;
intmaxV;
GM(intsz);
virtual~GM();
#include"
stdafx.h"
GM.h"
QueC.h"
LS.h"
GM:
GM(intsz)
maxV=sz;
ver=newchar[sz];
edge=newint[sz*sz];
numV=0;
~GM()
delete[]edge;
delete[]ver;
boolGM:
Create()
cout<
<
"
输入顶点个数(顶点个数不能大于"
maxV<
):
endl;
cin>
>
numV;
if(numV>
maxV)
cout<
error!
输入顶点信息数组:
for(inti=0;
i<
i++)
{
cin>
ver[i];
}
输入边信息数组(1有关,0无关):
for(i=0;
numV*numV;
edge[i];
边信息数组为:
cout<
edge[i]<
"
;
if((i+1)%numV==0)
cout<
intGM:
Rank(intm)
if((m<
0)||(m>
numV))
return-1;
intcount=0;
for(inti=m*numV;
((m+1)*numV);
{count=count+edge[i];
returncount;
InRank(intn)
if((n<
0)||(n>
for(intj=n;
j<
j=j+numV)
count=count+edge[j];
voidGM:
DFS(inti,bool*v)
v[i]=true;
ver[i]<
for(intj=i*numV;
((i+1)*numV);
j++)
if(!
v[j%numV]&
&
edge[j]==1)//j%numV是对应顶点的列号,
DFS(j%numV,v);
//v[j%numV]判断顶点是否被访问过
DFS()
bool*v=newbool[numV];
for(inti=0;
v[i]=false;
for(i=0;
if(v[i])
continue;
DFS(i,v);
delete[]v;
BFS()
QueC<
int>
q;
else
q.EnQ(i);
v[i]=true;
while(!
q.IsEmpty())
{
intn=q.GetFront();
q.DeQ();
for(intj=n*numV;
((n+1)*numV);
j++)
{
if(!
edge[j]==1)
{
v[j%numV]=true;
cout<
ver[j%numV]<
q.EnQ(j%numV);
}
}
}
TopoSt()
拓扑排序:
LS<
ls;
intIR[81];
IR[i]=InRank(i);
if(IR[i]==0)
ls.push(i);
intcount=0;
while(!
ls.IsEmpty())
inttop;
ls.GetTop(top);
ver[top]<
ls.pop();
count++;
for(intj=top*numV;
((top+1)*numV);
if(edge[j]==1)
IR[j%numV]--;
if(IR[j%numV]==0)
ls.push(j%numV);
if(count<
numV)
存在有向环。
intmain(intargc,char*argv[])
GMgm(10);
gm.Create();
inti;
输入一个顶点号:
i;
此顶点的出度:
gm.Rank(i)<
此顶点的入度:
gm.InRank(i)<
深度优先:
gm.DFS();
广度优先:
gm.BFS();
gm.TopoSt();
return0;
classVertex
Vertex();
virtual~Vertex();
chardata;
Edge*adj;
Vertex.h"
Vertex:
Vertex()
~Vertex()
classEdge
Edge(intnum);
virtual~Edge();
intdest;
Edge*link;
Edge.h"
Edge:
Edge(intnum)
dest=num;
link=NULL;
~Edge()
classGL
intInRank(intj);
intRank(inti);
GL(intsz);
virtual~GL();
Vertex*NodeTable;
protected:
GL.h"
GL:
GL(intsz)
NodeTable=newVertex[sz];
~GL()
Edge*p=NodeTable[i].adj;
Edge*q;
while(p)
q=p->
deletep;
p=q;
boolGL:
输入顶点的信息:
NodeTable[i].data;
NodeTable[i].adj=NULL;
输入边的信息,输入中含-1时停止:
while
(1)
intve,de;
ve>
de;
if((ve==-1)||(de==-1))
break;
Edge*p=newEdge(NULL);
p->
dest=de;
link=NodeTable[ve].adj;
NodeTable[ve].adj=p;
intGL:
Rank(inti)
if((i<
0)||(i>
++count;
p=p->
InRank(intj)
if((j<
0)||(j>
for(inti=0;
Edge*p=NodeTable[i].adj;
while(p)
if(p->
dest==j)
++count;
p=p->
voidGL:
NodeTable[i].data<
for(Edge*p=NodeTable[i].adj;
p;
p=p->
link)
v[p->
dest])
DFS(p->
dest,v);
for(Edge*p=NodeTable[n].adj;
v[p->
dest]=true;
NodeTable[p->
dest].data<
q.EnQ(p->
dest);
NodeTable[top].data<
for(Edge*p=NodeTable[top].adj;
IR[p->
dest]--;
if(IR[p->
dest]==0)
ls.push(p->
LS.h/LLN.h/QueC.h是模板
GLgl(10);
gl.Create();
intm;
m;
gl.Rank(m)<
gl.InRank(m)<
gl.DFS();
gl.BFS();
gl.TopoSt();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 作业 16