0
我想換2個節點與XOR鏈表XOR鏈表掉2個節點C
我的結構:
typedef struct s_node
{
struct s_node *ptr;
int data;
} t_node;
和我的功能(在這裏我想交換x和y) a是x的分組和b的下一個Y的
void swap_node(t_node *a, t_node *x, t_node *y, t_node *b)
{
//Swapping
x->ptr = xor_node(y, b);
y->ptr = xor_node(x, a);
//Update
a->ptr = xor_node(xor_node(y, a->ptr), y);
b->ptr = xor_node(xor_node(x, b->ptr), x);
}
xor_node只是使一個XOR 2 t_node *。
用於測試,我做了一個看起來像列表:2 - - 2 - 1
但是,我想1:1 - 2 - - 3 4
調用此函數的結果是等之後有:1 - 3 - 2 - 4
謝謝!
什麼是'xor_node'的返回值? – merlin2011
a t_node *:http://pastie.org/8912914 – Epitouille