stu->num,tmp_stu->name);
}
list_move_tail(&(pstu[2].list),&stu_list);
printf("把pstu[2]移至head和head->prev两个指针所指向的结点之间\n");
list_for_each(pos,&stu_list)
{
tmp_stu = list_entry(pos, stu, list);
printf("student num: %d\tstudent name: %s\n",tmp_stu->num,tmp_stu->name);
}
free(pstu);
return 0;
}
运行结果为:
root@ubuntu:/home/paixu/dlist_node# ./a
把pstu[3]移至head和head->next两个指针所指向的结点之间
student num: 4 student name: Stu4
student num: 5 student name: Stu5
student num: 3 student name: Stu3
student num: 2 student name: Stu2
student num: 1 student name: Stu1
把pstu[2]移至head和head->prev两个指针所指向的结点之间
student num: 4 student name: Stu4
student num: 5 student name: Stu5
student num: 2 student name: Stu2
student num: 1 student name: Stu1
student num: 3 student name: Stu3
在此之前先说一个注意点,以免部分读者以为结果有误,pstu[]中的下标是从0开始的,所以pstu[3]对应的是stu4。
这篇先讲到这里,余下的我们在下面一篇《C语言的那些小秘密之链表(四)》中继续讲。由于本人水平有限,博客中的不妥或错误之处在所难免,殷切希望读者批评指正。同时也欢迎读者共同探讨相关的内容,如果乐意交流的话请留下你宝贵的意见。