原创 发一个刚编写的关于图的程序

2007-12-29 00:09 2599 11 13 分类: 工程师职场

刚编写完,还很热乎呢,编译通过,呵呵,兴奋呢,就发上来了,大家一起学习哈。


这是一个深度优先遍历,和广度优先遍历的算法c实现。icon


#include "stdio.h"
#include "alloc.h"
typedef struct arc {
                   int addr;
                   struct arc *next;
     }ARC;
typedef struct vertex{
                   int data;
     ARC *firstarc;
        }VERTEX;
#define  maxnode 10
typedef VERTEX adj[maxnode];
int arcnum,nodenum;
int visited[maxnode];
void create(adj GL)
 {
  int i,j,k;
  ARC * p;
  for(i=0;i   {
    scanf("%d",&(GL.data));
    GL.firstarc=NULL;
   }
  for(k=0;k   {
    scanf("%d,%d",&i,&j);/*every arc connects two nodes,here you input the addr of the node .*/
    printf("\n");
    p="malloc"(sizeof(ARC));
    p->addr=j;p->next=GL.firstarc;GL.firstarc=p;
    p="malloc"(sizeof(ARC));
    p->addr=i;p->next=GL[j].firstarc;GL[j].firstarc=p;
   }
 }
adjdfs(adj GL,int v)
 {
  int i,j;
  for(i=0;i     {
      visited=0;/*if visited ,1;else 0.*/
     }
  dfs(GL,v);
 }
dfs(adj GL,int v)
 {
 ARC *p;
 if(visited[v]!=1)
   {
    visited[v]=1;
    /*visited*/
    printf("%d\n",GL[v].data);
   }
 p=GL[v].firstarc;
 while(p!=NULL){v=p->addr;
  if(visited[v]!=1)
  {dfs(GL,v);}
  }
 p=p->next;
 }
adjbfs(adj GL,int v)
 {
 int i,j,k,q[maxnode];
 int front="0",rear=0;
 ARC *p;
 p=GL[v].firstarc;
 q[rear]=v;
 printf("%d *\n",GL[v].data);
 rear++;
 while(front!=rear)
 {
 k=q[front];
 while(p!=NULL) {
                 if(visited[k]!=1)
                  {visited[k]=1;
                   printf("%d *",GL[k].data);                  
                   q[rear]=p->addr;
                   rear++;
                  }
                 p="p-">next;
                 front++;
                 }
 }
  }
main()
{
 adj GL;
 int i,v;
 printf("please input the number of arc and node in order to create a gragh \n");
 scanf("%d,%d",&arcnum,&nodenum);
 create(GL);
 printf("dfs and input the node from which to start the dfs \n");
 scanf("%d",&v);
 adjdfs(GL,v);
 for(i=0;i  {visited=0;}
 /*adjbfs(GL,v);*/
}

文章评论2条评论)

登录后参与讨论

用户1451188 2007-12-30 18:29

这是数据结构的程序,抽象的图。呵呵

用户741296 2007-12-30 13:56

什么图呀?
相关推荐阅读
用户1451188 2008-05-17 00:22
远行
总想要找那种歇死里底的感觉,想要大声呼喊,好久好久没有了这种感觉。要远行了,想一个人走在马路,低头,掏着口袋,听着音乐;想一个人去看海,坐在沙滩,点一只红塔,想着曾经的曾经;想一个人呆在自习室,拿着书...
用户1451188 2008-04-20 00:10
喜欢你
喜欢你,是因为那种淡淡的感觉,让我无拘无束喜欢你,是因为你那细心的问候,让我感到幸福感觉超越了现实,我生活在虚拟的世界曾经,我坠入谷底,曾经,我绝望哭泣,曾经,我想要逃离,而我还是留了下来。我不喜欢长...
用户1451188 2008-04-19 23:38
脚步。。
自己最近喜欢上了看英文的资料 今上午看了下flash的文件系统手册 flash file system ,有感觉。看了一下午加上一晚上的arm启动代码总算明白了一点,感觉 。因为没有板子,只是看别人的...
用户1451188 2008-04-14 23:08
脚步。
今天没有解决的问题:二值信号量和互斥信号量的具体区别,明天再看下ucos的代码,还有递归互锁,不太明白这是怎么回事,看嵌入式系统实时概念的时候遇到的。还有地址重映射的问题。  今天看电路设计的时候,收...
用户1451188 2008-04-12 17:41
假如时间停滞
有段时间没来了,今天上午听了山大老师做的报告,从信号处理到智能信号处理,老师真不一般。有点小崇拜这位老师了,年龄大可依旧风度翩翩,给人感觉很年轻。偏题了,呵呵。时间好快,真希望可以回到过去,在重新梳理...
用户1451188 2008-03-15 18:30
一个人 默默的走
高手来到的话给俺支支招吧 ,留下阁下的邮箱  谢咯好长时间没有写点东西了,没什么技术性的文章,只是自己学习的心情.今天上午 看了会ucos的存储管理,终于感觉到指针的强大了,也许是我笨,当看过几遍终于...
我要评论
2
11
关闭 站长推荐上一条 /2 下一条