首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请教循环链表是如何建立的,哪位高手能解释下,多谢

2013-04-02 
请问循环链表是怎么建立的,谁能解释下,谢谢typedef struct NODE {struct NODE *nextint item}*linklink

请问循环链表是怎么建立的,谁能解释下,谢谢
 

 typedef struct NODE {
struct NODE *next;
int item;
}*link;
link t =(inode *) malloc(sizeof(*t));\
    if(t == NULL)
        printf("malloc error\n");
    link x = t;
    link p;
    t->item = 1;
    t->next = t;//创建一个代表1号的单节点的循环链表
     for(i = 2;i <= N; i++)
    {
        x=x->next= (inode *)malloc(sizeof (inode));//x为要添加的节点////这句不太懂
        if(x == NULL)
            printf("malloc error\n");
        x->item = i;       
        x->next = t;
    }

[解决办法]
x=x->next= (inode *)malloc(sizeof (inode));
//分配一个节点,并挂在当前节点的next指针上.
[解决办法]
x=x->next= (inode *)malloc(sizeof (inode));//x为要添加的节点////这句不太懂
先分配内存
一开始 
                      x
t->Node1->Node2->NodeN->t; 
然后把新的节点赋给x->next;
就成了
                      x
t->Node1->NodeN->NodeN->NewNode
然后
x=x->next
相当于x往后移了下
                                x
t->Node1->NodeN->NodeN->NewNode
最后让NewNode指向t
                           x
t->Node1->NodeN->NodeN->NewNode->t(开始的)
循环了。
那个赋值语句是从右到左运算的。
[解决办法]
x=x->next= (inode *)malloc(sizeof (inode));//x为要添加的节点////这句不太懂
 先分配内存
 一开始 
                       
 t->Node1->Node2->NodeN(x)->t; 
 然后把新的节点赋给x->next;
 就成了
                       
 t->Node1->Node2->NodeN(x)->NewNode
 然后
 x=x->next
 相当于x往后移了下
                                 
 t->Node1->Node2->NodeN->NewNode(x)
 最后让NewNode指向t
                            
 t->Node1->Node2->NodeN->NewNode(x)->t(开始的)
 循环了。
 那个赋值语句是从右到左运算的。 
调整下X位置。

热点排行