susijie0021 发表于 2015-12-11 13:38:28

:smile

姜海涛123 发表于 2016-2-1 08:26:06

好得很

慎之,退之 发表于 2016-4-27 14:14:36

看看

浅唱丶 发表于 2016-5-20 08:50:01

来学习

阁龙1427 发表于 2016-8-12 09:34:23

这段时间看看链表

阁龙1427 发表于 2016-8-12 11:00:52

for( i=1; i <= n; i++ )
    {
      scanf("%d", &e);
      p = (dbLinkList)malloc(sizeof(dbLNode));
      p->data = e;
      p->freq = 0;
      p->next = NULL;
      p->prior = NULL;

      if( !list->next )       // 如果是头结点的话
      {
            list->next = p;
            p->prior = list;
      }
      else
      {
            r->next = p;
            p->prior = r;
      }

      r = p;
    }

这个代码写的妙

陶逗逗 发表于 2016-10-30 14:44:54

{:10_266:}

bjhjtsy 发表于 2016-11-8 08:18:33

{:10_257:}

gaoxian159753 发表于 2017-2-28 16:11:57

999999999999

赛大爷 发表于 2017-3-1 21:32:13

我郁闷,这个链表,自己写的代码老师有问题

Happyunlimit 发表于 2017-3-9 18:39:01

源代码

初学者.c 发表于 2017-3-13 09:25:55

1

wangjia911 发表于 2017-5-31 20:33:18

学习

wangjia911 发表于 2017-5-31 23:56:15

对老师这道题给出的代码有一些疑问,产生疑问的代码部分如下图:(就是访问双向链表指定元素并改变权重函数中最重要的这部分)
http://xxx.fishc.com/album/201705/31/235127h4gn44kgdj8xg8d4.png
我自己画了一个这部分代码的执行一次while循环的完整过程变化图,图中每个链表的名称完全按照老师定义的变量来命名,如下图:
http://xxx.fishc.com/album/201705/31/233847h2t020rmrto2y9tr.png
http://xxx.fishc.com/album/201705/31/233857akarlm2zt3bmzm29.png

这个流程图完全按照人类习惯的思考方式从左到右将权重高的链表往左侧移动移位,若按照此流程图的顺序转换成代码,如下所示:
      s->next = p;
      p->prior = s;
      p->next = q;
      q->prior = p;
      q->next = r;
      if( r )
      {
            r->prior = q;
      }
用这部分替换我第一张图中标红的部分(老师原始版本的代码),执行结果也完全没问题。

我的疑问如下:
老师实现那部分代码时是怎么的逻辑思维,还是那样写有什么更加深奥的好处,期盼小甲鱼老师或感兴趣的同学帮助解我心头之祸,感谢!

Theen 发表于 2017-10-11 20:34:06

{:5_92:}

1743826350 发表于 2017-10-12 14:58:11

看看看看看看看看看

Tankbaba 发表于 2017-10-16 11:36:23

学习学习

云之彼端星所在 发表于 2017-10-16 12:22:08

666

林梦夕 发表于 2017-10-17 18:16:20

很不错,谢谢分享

ljxll326 发表于 2017-12-23 11:03:02

//
页: 1 2 3 [4] 5
查看完整版本: 带权重的双向链表(线性表)