请教循环链表是如何建立的,哪位高手能解释下,多谢
请问循环链表是怎么建立的,谁能解释下,谢谢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位置。