@bluebelief 发表于 2016-10-25 10:41:24

关于邻接表代码理解问题

邻接表的创建部分代码:
      s=(struct enode * ) malloc (sizeof( sruct enode ) );
      
      s- >adjvex =j;

       s- >next = G-> adjlist .firstedge;
   
      G- >adjlist .firstedge =s;
第3,4 句不理解 ,比如顶点 A后有两边节点B,E,也就是说以A为弧尾,B,E,为弧头,如果按这代码的算法,我不理解A,B,E是怎么形成单链表的,请大神指教?

DarkSE 发表于 2016-11-23 22:38:29

楼主给出基本全的代码吧,G是什鬼,还有struct里面有什么……

Code_mzh 发表于 2018-3-9 19:18:50

这个邻接表用的 是头插法,你可以把 G-> adjlist .firstedge理解成单链表里面的头指针,
s- >adjvex =j;
       s- >next = G-> adjlist .firstedge;//新建的s的结点的下一个指向的便是头指针指向的
      G- >adjlist .firstedge =s; //然后又将头指针指向了s结点,所以构成了一个链表
页: [1]
查看完整版本: 关于邻接表代码理解问题