24小时热门版块排行榜    

CyRhmU.jpeg
查看: 364  |  回复: 2

elevenleo

铁杆木虫 (正式写手)

[求助] C语言结构体方面的问题已有2人参与

主程序如下,其中list结构体的定义下面也已给出。我的问题是语句“temp->parent = node;”,按照定义,node应该是指针,而temp->parent应该是结构体的值,为何二者可以彼此赋值。同样后文的“node->child = temp;”也是如此。此外,“node->child->parent = temp;”中连续两个箭头,又是什么意思。最后一个问题,structure中的“struct lists”时怎样的定义,能否详细解释。小弟初来乍到,还望高手不吝赐教,详细解释,不胜感谢。

void insert (list *node, int x)
{
    list *temp;
    if (node==NULL)
    {
        printf("\n Error!! asked to enter after a NULL pointer, hence exiting \n";
        exit(1);
    }
    temp = (list *)malloc(sizeof(list));
    temp->index = x;
    temp->child = node->child;
    temp->parent = node;
    if (node->child != NULL)
    {
        node->child->parent = temp;
    }
    node->child = temp;
    return;
}


结构体定义:

typedef struct lists
{
    int index;
    struct lists *parent;
    struct lists *child;
}
list;
回复此楼
stayhungry,stayfoolish.
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小小阿木公

银虫 (正式写手)


【答案】应助回帖

感谢参与,应助指数 +1
你这是数据结构的内容吧!利用双向链表建立队列,感觉你这源代码有点问题,你可以好好看看数据结构去。
2楼2017-05-03 21:10:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ioadong

木虫 (著名写手)

【答案】应助回帖

你应当去看看教材中指针的内容以及结构体的定义与使用。
temp->parent应该是结构体的值
--------------
这没错,可是这个值同时也是个指针,所以可以被node赋值。

“node->child->parent = temp;”中连续两个箭头,又是什么意思。
-------------------------
->表示结构体指针的引用,你用图形画出来就知道了。
以科学的理性代替天然的非理性。
3楼2017-05-06 19:49:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 elevenleo 的主题更新
信息提示
请填处理意见