标题:麻烦帮忙菜鸟解答一下
只看楼主
gencong
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-2-22
结帖率:100%
已结贴  问题点数:6 回复次数:4 
麻烦帮忙菜鸟解答一下
#include <iostream>

using namespace std;

class dlink
{
private:
    int num;
    dlink *pre;
    dlink *suc;
   
public:
    dlink()
    {
        pre = NULL;
        suc = NULL;
    }

    void SetNum(int anit)
    {
        num = anit;
    }

    void Append(dlink *p);
};


void dlink::Append(dlink *p)
{
    p->suc = suc;
    p->pre = this;
    this->suc->pre = p;
    suc = p;
}

dlink * list_head;

void main()
{
    dlink d, d1, d2, *p1, *p2;
    d.SetNum(0);
    d1.SetNum(1);
    d2.SetNum(2);

    list_head = &d;
    p1 = &d1;
    p2 = &d2;
    list_head->Append(p1);
    list_head->Append(p2);
}
不是很明白这个双链表的中void dlink::Append(dlink *p)这个函数中的四条语句分别是代表什么的,是怎样在链表内添加成员的,麻烦各位高手解答一下,不甚感激!

搜索更多相关主题的帖子: dlink void private include public 
2012-03-14 01:04
nicum
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:180
专家分:712
注 册:2011-2-1
得分:0 
自己在本子上画三个图不就出来了么
2012-03-16 22:40
gencong
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-2-22
得分:0 
回复 2楼 nicum
不是很明白是这四句是什么含义,能不能帮忙解释一下,谢谢!
p->suc = suc;
p->pre = this;
this->suc->pre = p;
suc = p;
2012-03-16 23:47
nicum
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:180
专家分:712
注 册:2011-2-1
得分:6 
void dlink::Append(dlink *p)
{
    p->suc = suc;
    p->pre = this;
    this->suc->pre = p;
    suc = p;
}
这个函数是把p插入到后继结点
    p->suc=suc;//p的后继结点是此节点的后继结点
    p->pre=this;//p的前驱结点是此节点
    this->suc->pre=p;//此节点的原后继结点的前驱为p结点(可以写成 suc->pre=p)
    suc=p;//此节点的后继结点为p结点
2012-03-17 20:51
gencong
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-2-22
得分:0 
回复 4楼 nicum
多谢你,我明白了,谢谢!
2012-03-18 21:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-363107-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.185571 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved