数据结构(C语言)关于树、二叉树、图的基本操作。

2017-12-06 08:13:31来源:cnblogs.com作者:Dark-king人点击

分享

1) 编写算法函数int equal(tree t1, tree t2),判断两棵给定的树是否等价;

 1  int equal(tree t1,tree t2) 2  { 3     int k; 4         if(t1==NULL&&t2==NULL) 5         return TRUE; 6     else if(t1!=NULL&&t2==NULL||t1==NULL&&t2!=NULL) 7              { 8               return FALSE; 9          }10           else if(t1->data!=t2->data)11           {12               return FALSE;13           }14           for(k=0;k<m;k++)15           {16               equal(t1->child[k],t2->child[k]);17               if(equal(t1->child[k],t2->child[k])==FALSE)18               {19                   return FALSE;20               }21               else22                   return TRUE;23           }24   }    

2) 编写算法函数void preorder(bintree t)实现二叉树t的非递归前序遍历;

 1 void preorder1(bintree t) 2 { 3     seqstack s; 4     init(&s); 5     while(t||!empty(&s)) 6     { 7         if(t) 8         { 9             printf("%c",t->data);10             push(&s,t);11             t=t->lchild;12         }13         else if(!empty(&s))14         {15             t=pop(&s);16             t=t->rchild;17         }18     }

3)编写算法函数degree(LinkedGraph g)输出以邻接表为存储结构的无向图的各顶点的度。

 1 void degree(LinkedGraph g) 2 { 3     int k; 4     int n; 5     EdgeNode *p; 6     for(k=0;k<g.n;k++) 7     { 8         p=g.adjlist[k].FirstEdge; 9         n=0;10         while(p!=NULL)11         {12             n++;13             p=p->next;14         }15         if(k==0)16         {17             printf("%d/n",n);18         }19         else20         {21             printf("%d/n",n);22         }23     }24 }

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台