{
long i,j,length=strlen(s);
if (st rt<1 || st rt>length) printf("The opy position is wrong");
else if (st rt+ ount-1>length) printf("Too h r ters to e opied");
else { for(i=st rt-1,j=0; i<st rt+ ount-1;i++,j++) t[j]=s[i]; t[j]= '\0';}
}
17. 设计求结点在二叉排序树中层次的算法。
int lev=0;
typedef stru t node{int key; stru t node *l hild,*r hild;} itree;
voi level( itree * t,int x)
{
if ( t!=0)
{lev++; if ( t->key==x) return; else if ( t->key>x) level( t->l hild,x); else level( t->r hild,x);}
}
18. 设计一个在链式存储结构上统计二叉树中结点个数的算法。
voi ountnode( itree * t,int & ount)
{
if( t!=0)
{ ount++; ountnode( t->l hild, ount); ountnode( t->r hild, ount);}
}
19. 设计一个算法将无向图的邻接矩阵转为对应邻接表的算法。
typedef stru t {int vertex[m]; int edge[m][m];}g djm trix;
typedef stru t node1{int info;int djvertex; stru t node1 *next r ;}glinklistnode; typedef stru t node2{int vertexinfo;glinklistnode *first r ;}glinkhe dnode;
voi djm trixto djlist(g djm trix g1[ ],glinkhe dnode g2[ ])
{
int i,j; glinklistnode *p;
for(i=0;i<=n-1;i++) g2[i].first r =0;
for(i=0;i<=n-1;i++) for(j=0;j<=n-1;j++)
if (g1.edge[i][j]==1)
{
p=(glinklistnode *)m llo (sizeof(glinklistnode));p-> djvertex=j;
p->next r =g[i].first r ; g[i].first r =p;
p=(glinklistnode *)m llo (sizeof(glinklistnode));p-> djvertex=i;
p->next r =g[j].first r ; g[j].first r =p;
}
}
20. 设计计算二叉树中所有结点值之和的算法。
voi sum( itree * t,int &s)
{
if( t!=0) {s=s+ t-> t ; sum( t->l hild,s); sum( t->r hild,s);}
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-25557-48.html
就是阻滞中国的发展
好