#include <stdio.h>
#include <stdlib.h>
// 假設 element 是 int
typedef int element;
typedef struct node* node_pointer;
typedef struct node {
node_pointer llink;
element item;
node_pointer rlink;
} node;
int main() {
// 建立一個節點並讓它成為環狀(自己接自己)
node_pointer ptr
= (node_pointer
)malloc(sizeof(node
)); ptr->item = 42;
ptr->llink = ptr;
ptr->rlink = ptr;
// 驗證這兩行是否可行
ptr = ptr->rlink->llink;
ptr = ptr->llink->rlink;
printf("ptr->item = %d\n", ptr
->item
); // 應該還是 42
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCi8vIOWBh+iorSBlbGVtZW50IOaYryBpbnQKdHlwZWRlZiBpbnQgZWxlbWVudDsKCnR5cGVkZWYgc3RydWN0IG5vZGUqIG5vZGVfcG9pbnRlcjsKdHlwZWRlZiBzdHJ1Y3Qgbm9kZSB7CiAgICBub2RlX3BvaW50ZXIgbGxpbms7CiAgICBlbGVtZW50IGl0ZW07CiAgICBub2RlX3BvaW50ZXIgcmxpbms7Cn0gbm9kZTsKCmludCBtYWluKCkgewogICAgLy8g5bu656uL5LiA5YCL56+A6bue5Lim6K6T5a6D5oiQ54K655Kw54uA77yI6Ieq5bex5o6l6Ieq5bex77yJCiAgICBub2RlX3BvaW50ZXIgcHRyID0gKG5vZGVfcG9pbnRlciltYWxsb2Moc2l6ZW9mKG5vZGUpKTsKICAgIHB0ci0+aXRlbSA9IDQyOwogICAgcHRyLT5sbGluayA9IHB0cjsKICAgIHB0ci0+cmxpbmsgPSBwdHI7CgogICAgLy8g6amX6K2J6YCZ5YWp6KGM5piv5ZCm5Y+v6KGMCiAgICBwdHIgPSBwdHItPnJsaW5rLT5sbGluazsKICAgIHB0ciA9IHB0ci0+bGxpbmstPnJsaW5rOwoKICAgIHByaW50ZigicHRyLT5pdGVtID0gJWRcbiIsIHB0ci0+aXRlbSk7IC8vIOaHieipsumChOaYryA0MgoKICAgIGZyZWUocHRyKTsKICAgIHJldHVybiAwOwp9