アルゴリズムとデータ構造 補足資料 11-4 「第 11 回問題の動作」
DESCRIPTION
アルゴリズムとデータ構造 補足資料 11-4 「第 11 回問題の動作」. 横浜国立大学 理工 学部 数物・電子情報系学科 富井尚志. int main(void) { struct list * listptr , *new1, *new2; listptr = get_list ( ); print_list ( listptr ); new1 = ( struct list *) malloc ( sizeof ( struct list)); new1 -> key = 222; - PowerPoint PPT PresentationTRANSCRIPT
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;} 画面出力
<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
listptr
new2
new1
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
NULLkey
next
1key
next
2key
next
3key
next
4key
next
5key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
listptr
new2
new1
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
NULLkey
next
1key
next
2key
next
3key
next
4key
next
5key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
listptr
new2
new1
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
NULLkey
next
1key
next
2key
next
3key
next
4key
next
5key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
listptr
new2
new1key
next
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
NULLkey
next
1key
next
2key
next
3key
next
4key
next
5key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
listptr
new2
new1key
next
222
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
NULLkey
next
1key
next
2key
next
3key
next
4key
next
5key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
listptr
new2
new1key
next
222
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
NULLkey
next
1key
next
2key
next
3key
next
4key
next
5key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
listptr
new2
new1key
next
222
x p
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
NULLkey
next
1key
next
2key
next
3key
next
4key
next
5key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
listptr
new2
new1key
next
222
listptr listptr->nextlistptr->next->next
listptr->next->next->next
x p
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
NULLkey
next
1key
next
2key
next
3key
next
4key
next
5key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
key
next
222
x p
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
NULLkey
next
1key
next
2key
next
3key
next
4key
next
5key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
key
next
222
x p
p->next
p
p->next->next
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
NULLkey
next
1key
next
2key
next
3key
next
4key
next
5key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
key
next
222
x p
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
NULLkey
next
1key
next
2key
next
3key
next
4key
next
5key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
key
next
222
x p
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
NULLkey
next
1key
next
2key
next
3key
next
4key
next
5key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
key
next
222
x p
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
key
next
2key
next
3key
next
4key
next
5key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
listptr
new2
new1
NULLkey
next
1key
next
222
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
key
next
2key
next
3key
next
4key
next
5key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
listptr
new2
new1
NULLkey
next
1key
next
222
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
key
next
2key
next
3key
next
4key
next
5key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
listptr
new2
new1
NULLkey
next
1key
next
222
key
next
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
key
next
2key
next
3key
next
4key
next
5key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
listptr
new2
new1
NULLkey
next
1key
next
222
key
next
333
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
key
next
2key
next
3key
next
4key
next
5key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
listptr
new2
new1
NULLkey
next
1key
next
222
key
next
333
x p
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
key
next
2key
next
3key
next
4key
next
5key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
listptr
new2
new1
NULLkey
next
1key
next
222
key
next
333
x p
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
key
next
2key
next
3key
next
4key
next
5key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
listptr
new2
new1
NULLkey
next
1key
next
222
key
next
333
x p
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
key
next
2key
next
3key
next
4key
next
5key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
NULLkey
next
1key
next
222
key
next
333
x p
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
key
next
2key
next
3key
next
4key
next
5key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
NULLkey
next
1key
next
222
key
next
333
x p
key
next
tmp
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
key
next
2key
next
3key
next
4key
next
5key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
NULLkey
next
1key
next
222
key
next
333
x p
key
next
333tmp
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
key
next
2key
next
3key
next
4key
next
5key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
NULLkey
next
1key
next
222
key
next
5
x p
key
next
333tmp
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
key
next
2key
next
3key
next
4key
next
333key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
NULLkey
next
1key
next
222
key
next
5
x p
key
next
333tmp
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
key
next
2key
next
3key
next
4key
next
333key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
NULLkey
next
1key
next
222
key
next
5
x p
key
next
333tmp
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
key
next
2key
next
3key
next
4key
next
333key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
NULLkey
next
1key
next
222
key
next
5
x p
key
next
333tmp
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
key
next
2key
next
3key
next
4key
next
333key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
NULLkey
next
1key
next
222
key
next
5
listptr
new2
new1
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
key
next
2key
next
3key
next
4key
next
333key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
NULLkey
next
1key
next
222
key
next
5
listptr
new2
new1
int main(void){ struct list *listptr, *new1, *new2; listptr = get_list( ); print_list( listptr ); new1 = (struct list *)malloc(sizeof(struct list)); new1 -> key = 222; func1( new1, listptr->next->next->next); print_list( listptr ); new2 = (struct list *)malloc(sizeof(struct list)); new2 -> key = 333; func2( new2, listptr->next); print_list( listptr ); return 0;}
void func1(struct list *x, struct list *p){ x->next = p->next->next; p->next->next = x;}
void func2(struct list *x, struct list *p){ struct list tmp; tmp = *x; *x = *p; *p = tmp; p->next = x->next;}
key
next
2key
next
3key
next
4key
next
333key
next
6
画面出力<6><5><4><3><2><1><6><5><4><3><2><222><1><6><333><4><3><2><222><1>
NULLkey
next
1key
next
222
key
next
5
listptr
new2
new1