0
我正在定義一個鏈接列表,其中的結構(第一個)與其他類型的結構不同。這個第一個節點總是存在。創建具有不同結構類型的鏈接列表
Type1 -> Type2_1 -> Type2_2 -> Type2_3->etc
我必須能夠重新排列Type2元素。例如,我可以有:
Type1 -> Type2_3 -> Type2_1 -> Type2_2 -> etc
我試圖做到這一點的方式是通過定義一個雙鏈表。每個Type2元素可以指向下一個Type2,前一個,如果需要的話可以是Type1。如果Type2元素位於Type1旁邊,則其指向前一個Type2的指針將設置爲NULL。
typedef struct Type2{
struct Type2 *next;
struct Type2 *previous;
int isNextToType1;
} Type2;
有沒有更好的方法來做到這一點?
如果先前的指針設置爲NULL,那麼您需要什麼'isNextToType1'成員來處理?只需檢查一個'NULL''前一個'指針。 – Drax 2014-10-08 15:37:46
@Drax應該是一個答案。 – 2014-10-08 16:38:13
您最好將此數據表徵爲包含鏈接列表(Type2s)的結構(Type1)。以這種方式思考可能會提示引導你走向更有效的方向。 – 2014-10-08 16:41:12