数据结构
链表的具体内容已经在前面的链表中有所讲解,关于链表变式,本文只展示代码和测试用例
双向链表
双向链表是链表家族C语言数据结构3-双向链表中一个非常重要的变式,它与单向链表的最大区别在于每个节点不仅包含指向后继节点的指针,还额外增加了一个指向前驱节点的指针。这个看似简单的改变,却为链表的操作带来了质的飞跃。在单向链表中,如果我们想要删除某个节点,必须知道它的前驱节点,这就意味着需要从头开始遍历查找;而在双向链表中,只要有了待删除节点的指针,就可以直接通过前驱指针找到前驱节点,无需再次遍历。此外,双向链表还支持反向遍历,这在某些应用场景下非常有用,比如实现浏览器的前进后退功能、LRU缓存淘汰算法等。当然,双向链表也付出了相应的代价,每个节点需要多存储一个指针,占用更多的内存空间,而且在插入和删除操作时需要更新更多的指针链接,代码实现也相对复杂一些。
头文件
在双向链表的具体实现中,头文件的设计需要考虑类型的可扩展性和代码的可读性。我们通过typedef将节点中存储的数据类型定义为E,这样如果将来需要修改存储的数据类型,只需要改动这一处即可,体现了良好的编程习惯。节点结构体包含三个成员:element用于存储实际数据,piror指向前驱节点,next指向后继节点。为了简化代码书写,我们分别给结构体和结构体指针取别名TwoWayLinkedList和TWNode。头文件中声明的四个核心函数分别是初始化、插入、删除和打印,这些函数构成了双向链表的基本操作集,使用者只需要调用这些接口即可完成链表的各种操作,而不需要关心内部实现细节。
typedef int E; //对数据取别名,方便后续修改类型
typedef struct TwoWayLinkedNode{
E element;//用于存储节点内元素
struct TwoWayLinkedNode * piror;//指向该节点前驱节点的指针
struct TwoWayLinkedNode * next;//指向该节点后继节点的指针
}TwoWayLinkedList;//取别名
typedef TwoWayLinkedList * TWNode;//对双向链表的指针取别名
void InitTWLinkedList(TWNode Head);//初始化双向链表函数
_Bool insertTWLinkedList(TWNode Head,E element,int index);//插入函数
_Bool deleteTWLinkedList(TWNode Head,int index);//删除函数
void PrintTWList(TWNode Head);//打印函数
功能函数
初始化函数
初始化函数的实现非常直观,主要工作是将头结点的前驱和后继指针都设置为NULL,这标志着这是一个空的双向链表。需要注意的是,这里的头结点是一个哑结点,它本身不存储有效数据,只是为了简化插入和删除操作的边界处理而存在的。函数的参数采用值传递方式,传入的是一个指向头结点的指针,因此在使用前需要确保头结点已经被正确分配了内存空间。为了便于调试,初始化函数还会打印头结点的地址,这样开发者可以在运行时观察内存的分配情况,及时发现潜在的问题。
#include "TwoWayLinkedList.h"
#include <stdio.h>
#include <stdlib.h>
void InitTWLinkedList(TWNode Head){
if(Head == NULL){
printf("[LOG]:undefined TWLinkedList\n");
return;
}// 判断当前指针是否为空
Head->piror = NULL;
Head->next = NULL;
//将前驱和后继指针置空
printf("[LOG]:Init success\n");
printf("[INFO]:Head Address = %p\n",Head);
return;
}
插入函数
插入函数是双向链表中最为复杂的操作之一,它需要在指定位置插入一个新节点。实现时首先对参数进行合法性检查,包括头结点是否为空以及插入位置是否小于1。然后需要为新节点分配内存空间,并将待插入的元素值存入节点中,同时将新节点的前驱和后继指针初始化为NULL。接下来通过循环找到插入位置的前驱节点,这里需要特别注意边界条件的处理,如果插入位置超过了链表当前的长度,函数应当报错并返回。找到前驱节点后,就需要分情况更新指针了。如果前驱节点的后继节点不为空,说明是在中间或头部插入,这时需要同时更新新节点的后继指针、前驱指针、前驱节点的后继指针以及后继节点的前驱指针,四个指针的更新顺序非常重要,如果顺序不当可能导致链表断裂。如果前驱节点的后继节点为空,说明是在尾部插入,此时只需要更新新节点的前驱指针和前驱节点的后继指针即可。整个插入过程体现了双向链表指针操作的复杂性,但也展示了其灵活性。
_Bool insertTWLinkedList(TWNode Head,E element,int index){
if(Head == NULL){
printf("[ERROR]:undefined TWLinkedList\n");
return 0 ;
}//指针判空
TWNode newNode =(TWNode) malloc(sizeof(struct TwoWayLinkedNode));//为待插入节点分配内存空间
newNode->element = element;//把待插入元素写入结构体
newNode->piror = NULL;
newNode->next = NULL;
//初始化两个指针
if(index<1){
printf("[ERROR]:Wrong index\n");
return 0;
}// 判断插入位置的合法性
while(--index){
if(Head->next!=NULL){
Head = Head->next;
}else{//如果插入位置大于链表中此时有的元素个数,则直接结束函数
printf("[ERROR]:Wrong index\n");
return 0;
}
}
if(Head->next!=NULL){//正常更新插入节点,前驱节点,后继节点的指针
newNode->next = Head->next;
newNode->piror = Head;
Head->next->piror = newNode;
Head->next = newNode;
}else{//如果是最后一个节点之后插入则只更新本节点和前驱节点
newNode->piror = Head;
Head->next =newNode;
}
printf("[LOG]:insert success\n");
printf("[INFO]:Node Address = %p,piror Node Address = %p,next Node = %p,element=%d\n"
,newNode,newNode->piror,newNode->next,element);
return 1;
}
删除函数
删除函数的实现与插入类似,同样需要进行参数合法性检查和索引定位。找到待删除节点的前驱节点后,我们需要先保存待删除节点的指针,然后根据待删除节点是否有后继节点来分情况处理。如果待删除节点是尾节点,只需要将前驱节点的后继指针设置为NULL即可;如果不是尾节点,则需要将前驱节点的后继指针指向待删除节点的后继节点,同时将后继节点的前驱指针指向前驱节点。完成指针更新后,及时释放待删除节点的内存空间是非常必要的,否则会造成内存泄漏。为了方便调试,删除函数还会打印被删除节点的地址、存储的元素以及相关节点的指针信息,这些调试信息在开发阶段非常有价值,可以帮助开发者快速定位问题。
_Bool deleteTWLinkedList(TWNode Head,int index){
if(Head==NULL){
printf("[ERROR]:undefined TWLinkedList\n");
return 0;
}//指针判空
if(index<1){
printf("[ERROR]:Wrong index\n");
return 0;
}//判断插入位置合法性,下界是1
while(--index){
if(Head->next==NULL){
printf("[ERROR]:wrong index");
return 0;
}//判断合法位置,size+1是上界
Head = Head ->next;//移动指针
}
TWNode deleteNode = Head->next;
if(Head->next->next==NULL){
Head->next = NULL;//删除最后一个位置节点
}else{
Head->next = deleteNode->next;
deleteNode->next->piror = Head;
}//中间位置修改指针
printf("[INFO]:delete success, Node Address = %p,Piror Node Adress = %p,next Node Adress = %p,element = %d\n"
,deleteNode,deleteNode->piror,deleteNode->next,deleteNode->element);
free(deleteNode);//释放指针
return 1;
}
打印函数
打印函数的作用是将双向链表中的所有元素按顺序输出,便于观察链表的状态。由于链表的遍历方向是从头结点开始依次向后移动,因此打印函数只需要沿着next指针的方向移动,每经过一个节点就打印该节点的前驱指针地址、存储的元素值和后继指针地址。为了输出的美观,我们使用特定的格式将节点连接起来,用户可以清晰地看到每个节点之间的链接关系。如果链表为空,打印函数只会输出头结点的信息而不会输出任何数据节点,这一点需要在调用时注意判断。
void PrintTWList(TWNode Head){//打印
if(Head==NULL){
printf("[ERROR]:undefined TWLinkedList\n");
return;
}
while(Head->next!=NULL){
Head = Head->next;
printf("[%p,%d,%p]<->",Head->piror,Head->element,Head->next);
}
return ;
}
测试用例
为了验证双向链表实现的正确性,我们需要设计一套全面的测试用例。测试用例分为多个部分。
第一部分是基本的插入功能测试,包括在头部插入、在中间插入和在尾部插入,每次插入后都会打印链表内容,观察插入后的链接关系是否正确。第二部分是删除功能测试,同样覆盖头部删除、中间删除和尾部删除三种情况,特别是要验证删除后前后节点的指针是否正确更新。第三部分是边界测试,测试向空链表插入元素、从单节点链表删除元素以及使用超出范围的索引进行插入和删除,这些边界情况是考察程序鲁棒性的重要指标。第四部分是压力测试,我们连续向链表插入100个元素,然后再逐个删除其中的50个元素,观察程序是否能够稳定运行,数据是否正确。第五部分是双向链接正确性验证,我们通过正向遍历和反向遍历两种方式遍历链表,如果正向遍历和反向遍历得到的结果一致,就证明前驱和后继指针的维护是正确的。最后是综合操作测试,通过一系列混合的插入和删除操作,模拟实际使用场景,确保在各种操作组合下链表都能保持正确的状态。
#include <stdio.h>
#include <stdlib.h>
#include "TwoWayLinkedList.h"
int main() {
printf("========== 双向链表完整功能测试 ==========\n\n");
// 创建头结点
TwoWayLinkedList Head;
TWNode head = &Head;
InitTWLinkedList(head);
printf("\n========== 1. 插入测试 ==========\n");
printf("\n--- 在位置1插入10 ---\n");
insertTWLinkedList(head, 10, 1);
PrintTWList(head);
printf("\n--- 在位置2插入20 ---\n");
insertTWLinkedList(head, 20, 2);
PrintTWList(head);
printf("\n--- 在位置2插入30 ---\n");
insertTWLinkedList(head, 30, 2);
PrintTWList(head);
printf("\n--- 在位置1插入5 ---\n");
insertTWLinkedList(head, 5, 1);
PrintTWList(head);
printf("\n--- 在位置4插入25 ---\n");
insertTWLinkedList(head, 25, 4);
PrintTWList(head);
printf("\n--- 在位置1插入100 ---\n");
insertTWLinkedList(head, 100, 1);
PrintTWList(head);
printf("\n========== 2. 删除测试 ==========\n");
printf("\n--- 删除位置3 ---\n");
deleteTWLinkedList(head, 3);
PrintTWList(head);
printf("\n--- 删除位置1 ---\n");
deleteTWLinkedList(head, 1);
PrintTWList(head);
printf("\n--- 删除最后位置 ---\n");
deleteTWLinkedList(head, 4);
PrintTWList(head);
printf("\n--- 删除位置2 ---\n");
deleteTWLinkedList(head, 2);
PrintTWList(head);
printf("\n--- 测试无效删除 index=0 ---\n");
deleteTWLinkedList(head, 0);
PrintTWList(head);
printf("\n--- 测试无效删除 index=10 ---\n");
deleteTWLinkedList(head, 10);
PrintTWList(head);
printf("\n========== 3. 边界测试 ==========\n");
printf("\n--- 空链表插入测试 ---\n");
TWNode emptyHead = (TWNode)malloc(sizeof(TwoWayLinkedList));
InitTWLinkedList(emptyHead);
printf("空链表插入999到位置1:\n");
insertTWLinkedList(emptyHead, 999, 1);
PrintTWList(emptyHead);
printf("\n--- 从单节点链表删除 ---\n");
deleteTWLinkedList(emptyHead, 1);
PrintTWList(emptyHead);
printf("\n========== 4. 压力测试 ==========\n");
TWNode stressHead = (TWNode)malloc(sizeof(TwoWayLinkedList));
InitTWLinkedList(stressHead);
printf("\n--- 插入100个元素 ---\n");
for(int i = 1; i <= 100; i++) {
insertTWLinkedList(stressHead, i * 10, i);
if(i % 20 == 0) {
printf("已插入 %d 个元素\n", i);
}
}
PrintTWList(stressHead);
printf("\n--- 删除50个元素 (每隔一个删一个) ---\n");
for(int i = 1; i <= 50; i++) {
deleteTWLinkedList(stressHead, i);
if(i % 10 == 0) {
printf("已删除 %d 个元素\n", i);
}
}
PrintTWList(stressHead);
printf("\n========== 5. 双向链接正确性验证 ==========\n");
TWNode verifyHead = (TWNode)malloc(sizeof(TwoWayLinkedList));
InitTWLinkedList(verifyHead);
// 插入测试数据
insertTWLinkedList(verifyHead, 100, 1);
insertTWLinkedList(verifyHead, 200, 2);
insertTWLinkedList(verifyHead, 300, 3);
printf("\n正向遍历: ");
PrintTWList(verifyHead);
printf("\n反向遍历验证: ");
TWNode p = verifyHead;
// 先走到尾节点
while(p->next != NULL) {
p = p->next;
}
// 反向遍历
while(p != verifyHead) {
printf("[%d,%p]<->", p->element, p->piror);
p = p->piror;
}
printf("Head\n");
printf("\n========== 6. 综合操作测试 ==========\n");
TWNode finalHead = (TWNode)malloc(sizeof(TwoWayLinkedList));
InitTWLinkedList(finalHead);
printf("\n初始插入1,3,5:\n");
insertTWLinkedList(finalHead, 1, 1);
insertTWLinkedList(finalHead, 3, 2);
insertTWLinkedList(finalHead, 5, 3);
PrintTWList(finalHead);
printf("\n在位置2插入2:\n");
insertTWLinkedList(finalHead, 2, 2);
PrintTWList(finalHead);
printf("\n在位置4插入4:\n");
insertTWLinkedList(finalHead, 4, 4);
PrintTWList(finalHead);
printf("\n删除位置3:\n");
deleteTWLinkedList(finalHead, 3);
PrintTWList(finalHead);
printf("\n最终结果: ");
PrintTWList(finalHead);
printf("\n\n========== 所有测试完成 ==========\n");
return 0;
}
测试结果
========== 双向链表完整功能测试 ==========
[LOG]:Init success
[INFO]:Head Address = 000000C43C1FF6B0
========== 1. 插入测试 ==========
--- 在位置1插入10 ---
[LOG]:insert success
[INFO]:Node Address = 0000024B56F3E060,piror Node Address = 000000C43C1FF6B0,next Node = 0000000000000000,element=10
[000000C43C1FF6B0,10,0000000000000000]<->
--- 在位置2插入20 ---
[LOG]:insert success
[INFO]:Node Address = 0000024B56F3E340,piror Node Address = 0000024B56F3E060,next Node = 0000000000000000,element=20
[000000C43C1FF6B0,10,0000024B56F3E340]<->[0000024B56F3E060,20,0000000000000000]<->
--- 在位置2插入30 ---
[LOG]:insert success
[INFO]:Node Address = 0000024B56F3E080,piror Node Address = 0000024B56F3E060,next Node = 0000024B56F3E340,element=30
[000000C43C1FF6B0,10,0000024B56F3E080]<->[0000024B56F3E060,30,0000024B56F3E340]<->[0000024B56F3E080,20,0000000000000000]<->
--- 在位置1插入5 ---
[LOG]:insert success
[INFO]:Node Address = 0000024B56F3E140,piror Node Address = 000000C43C1FF6B0,next Node = 0000024B56F3E060,element=5
[000000C43C1FF6B0,5,0000024B56F3E060]<->[0000024B56F3E140,10,0000024B56F3E080]<->[0000024B56F3E060,30,0000024B56F3E340]<->[0000024B56F3E080,20,0000000000000000]<->
--- 在位置4插入25 ---
[LOG]:insert success
[INFO]:Node Address = 0000024B56F3E1E0,piror Node Address = 0000024B56F3E080,next Node = 0000024B56F3E340,element=25
[000000C43C1FF6B0,5,0000024B56F3E060]<->[0000024B56F3E140,10,0000024B56F3E080]<->[0000024B56F3E060,30,0000024B56F3E1E0]<->[0000024B56F3E080,25,0000024B56F3E340]<->[0000024B56F3E1E0,20,0000000000000000]<->
--- 在位置1插入100 ---
[LOG]:insert success
[INFO]:Node Address = 0000024B56F3E160,piror Node Address = 000000C43C1FF6B0,next Node = 0000024B56F3E140,element=100
[000000C43C1FF6B0,100,0000024B56F3E140]<->[0000024B56F3E160,5,0000024B56F3E060]<->[0000024B56F3E140,10,0000024B56F3E080]<->[0000024B56F3E060,30,0000024B56F3E1E0]<->[0000024B56F3E080,25,0000024B56F3E340]<->[0000024B56F3E1E0,20,0000000000000000]<->
========== 2. 删除测试 ==========
--- 删除位置3 ---
[INFO]:delete success, Node Address = 0000024B56F3E060,Piror Node Adress = 0000024B56F3E140,next Node Adress = 0000024B56F3E080,element = 10
[000000C43C1FF6B0,100,0000024B56F3E140]<->[0000024B56F3E160,5,0000024B56F3E080]<->[0000024B56F3E140,30,0000024B56F3E1E0]<->[0000024B56F3E080,25,0000024B56F3E340]<->[0000024B56F3E1E0,20,0000000000000000]<->
--- 删除位置1 ---
[INFO]:delete success, Node Address = 0000024B56F3E160,Piror Node Adress = 000000C43C1FF6B0,next Node Adress = 0000024B56F3E140,element = 100
[000000C43C1FF6B0,5,0000024B56F3E080]<->[0000024B56F3E140,30,0000024B56F3E1E0]<->[0000024B56F3E080,25,0000024B56F3E340]<->[0000024B56F3E1E0,20,0000000000000000]<->
--- 删除最后位置 ---
[INFO]:delete success, Node Address = 0000024B56F3E340,Piror Node Adress = 0000024B56F3E1E0,next Node Adress = 0000000000000000,element = 20
[000000C43C1FF6B0,5,0000024B56F3E080]<->[0000024B56F3E140,30,0000024B56F3E1E0]<->[0000024B56F3E080,25,0000000000000000]<->
--- 删除位置2 ---
[INFO]:delete success, Node Address = 0000024B56F3E080,Piror Node Adress = 0000024B56F3E140,next Node Adress = 0000024B56F3E1E0,element = 30
[000000C43C1FF6B0,5,0000024B56F3E1E0]<->[0000024B56F3E140,25,0000000000000000]<->
--- 测试无效删除 index=0 ---
[ERROR]:Wrong index
[000000C43C1FF6B0,5,0000024B56F3E1E0]<->[0000024B56F3E140,25,0000000000000000]<->
--- 测试无效删除 index=10 ---
[ERROR]:wrong index[000000C43C1FF6B0,5,0000024B56F3E1E0]<->[0000024B56F3E140,25,0000000000000000]<->
========== 3. 边界测试 ==========
--- 空链表插入测试 ---
[ERROR]:Init success
[INFO]:Head Address = 0000024B56F3E060
空链表插入999到位置1:
[LOG]:insert success
[INFO]:Node Address = 0000024B56F3E3A0,piror Node Address = 0000024B56F3E060,next Node = 0000000000000000,element=999
[0000024B56F3E060,999,0000000000000000]<->
--- 从单节点链表删除 ---
[INFO]:delete success, Node Address = 0000024B56F3E3A0,Piror Node Adress = 0000024B56F3E060,next Node Adress = 0000000000000000,element = 999
========== 4. 压力测试 ==========
[ERROR]:Init success
[INFO]:Head Address = 0000024B56F3E0A0
--- 插入100个元素 ---
[LOG]:insert success
[INFO]:Node Address = 0000024B56F3E340,piror Node Address = 0000024B56F3E0A0,next Node = 0000000000000000,element=10
[LOG]:insert success
[INFO]:Node Address = 0000024B56F3E160,piror Node Address = 0000024B56F3E340,next Node = 0000000000000000,element=20
[LOG]:insert success
[INFO]:Node Address = 0000024B56F3E320,piror Node Address = 0000024B56F3E160,next Node = 0000000000000000,element=30
[LOG]:insert success
[INFO]:Node Address = 0000024B56F3E2C0,piror Node Address = 0000024B56F3E320,next Node = 0000000000000000,element=40
[LOG]:insert success
[INFO]:Node Address = 0000024B56F3E180,piror Node Address = 0000024B56F3E2C0,next Node = 0000000000000000,element=50
[LOG]:insert success
[INFO]:Node Address = 0000024B56F3E080,piror Node Address = 0000024B56F3E180,next Node = 0000000000000000,element=60
[LOG]:insert success
[INFO]:Node Address = 0000024B56F3E0C0,piror Node Address = 0000024B56F3E080,next Node = 0000000000000000,element=70
[LOG]:insert success
[INFO]:Node Address = 0000024B56F3E240,piror Node Address = 0000024B56F3E0C0,next Node = 0000000000000000,element=80
[LOG]:insert success
[INFO]:Node Address = 0000024B56F3E0E0,piror Node Address = 0000024B56F3E240,next Node = 0000000000000000,element=90
[LOG]:insert success
[INFO]:Node Address = 0000024B56F3E3A0,piror Node Address = 0000024B56F3E0E0,next Node = 0000000000000000,element=100
[LOG]:insert success
[INFO]:Node Address = 0000024B56F3E260,piror Node Address = 0000024B56F3E3A0,next Node = 0000000000000000,element=110
[LOG]:insert success
[INFO]:Node Address = 0000024B56F3E2A0,piror Node Address = 0000024B56F3E260,next Node = 0000000000000000,element=120
[LOG]:insert success
[INFO]:Node Address = 0000024B56F3E100,piror Node Address = 0000024B56F3E2A0,next Node = 0000000000000000,element=130
[LOG]:insert success
[INFO]:Node Address = 0000024B56F3E2E0,piror Node Address = 0000024B56F3E100,next Node = 0000000000000000,element=140
[LOG]:insert success
[INFO]:Node Address = 0000024B56F3E300,piror Node Address = 0000024B56F3E2E0,next Node = 0000000000000000,element=150
[LOG]:insert success
[INFO]:Node Address = 0000024B56F3E360,piror Node Address = 0000024B56F3E300,next Node = 0000000000000000,element=160
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40950,piror Node Address = 0000024B56F3E360,next Node = 0000000000000000,element=170
[LOG]:insert success
[INFO]:Node Address = 0000024B56F406D0,piror Node Address = 0000024B56F40950,next Node = 0000000000000000,element=180
[LOG]:insert success
[INFO]:Node Address = 0000024B56F405F0,piror Node Address = 0000024B56F406D0,next Node = 0000000000000000,element=190
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40570,piror Node Address = 0000024B56F405F0,next Node = 0000000000000000,element=200
已插入 20 个元素
[LOG]:insert success
[INFO]:Node Address = 0000024B56F404B0,piror Node Address = 0000024B56F40570,next Node = 0000000000000000,element=210
[LOG]:insert success
[INFO]:Node Address = 0000024B56F404F0,piror Node Address = 0000024B56F404B0,next Node = 0000000000000000,element=220
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40BD0,piror Node Address = 0000024B56F404F0,next Node = 0000000000000000,element=230
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40BB0,piror Node Address = 0000024B56F40BD0,next Node = 0000000000000000,element=240
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40690,piror Node Address = 0000024B56F40BB0,next Node = 0000000000000000,element=250
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40450,piror Node Address = 0000024B56F40690,next Node = 0000000000000000,element=260
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40B30,piror Node Address = 0000024B56F40450,next Node = 0000000000000000,element=270
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40490,piror Node Address = 0000024B56F40B30,next Node = 0000000000000000,element=280
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40870,piror Node Address = 0000024B56F40490,next Node = 0000000000000000,element=290
[LOG]:insert success
[INFO]:Node Address = 0000024B56F409D0,piror Node Address = 0000024B56F40870,next Node = 0000000000000000,element=300
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40890,piror Node Address = 0000024B56F409D0,next Node = 0000000000000000,element=310
[LOG]:insert success
[INFO]:Node Address = 0000024B56F407D0,piror Node Address = 0000024B56F40890,next Node = 0000000000000000,element=320
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40710,piror Node Address = 0000024B56F407D0,next Node = 0000000000000000,element=330
[LOG]:insert success
[INFO]:Node Address = 0000024B56F407B0,piror Node Address = 0000024B56F40710,next Node = 0000000000000000,element=340
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40810,piror Node Address = 0000024B56F407B0,next Node = 0000000000000000,element=350
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40730,piror Node Address = 0000024B56F40810,next Node = 0000000000000000,element=360
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40A70,piror Node Address = 0000024B56F40730,next Node = 0000000000000000,element=370
[LOG]:insert success
[INFO]:Node Address = 0000024B56F408B0,piror Node Address = 0000024B56F40A70,next Node = 0000000000000000,element=380
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40470,piror Node Address = 0000024B56F408B0,next Node = 0000000000000000,element=390
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40930,piror Node Address = 0000024B56F40470,next Node = 0000000000000000,element=400
已插入 40 个元素
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40830,piror Node Address = 0000024B56F40930,next Node = 0000000000000000,element=410
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40A90,piror Node Address = 0000024B56F40830,next Node = 0000000000000000,element=420
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40B50,piror Node Address = 0000024B56F40A90,next Node = 0000000000000000,element=430
[LOG]:insert success
[INFO]:Node Address = 0000024B56F404D0,piror Node Address = 0000024B56F40B50,next Node = 0000000000000000,element=440
[LOG]:insert success
[INFO]:Node Address = 0000024B56F408D0,piror Node Address = 0000024B56F404D0,next Node = 0000000000000000,element=450
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40750,piror Node Address = 0000024B56F408D0,next Node = 0000000000000000,element=460
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40AD0,piror Node Address = 0000024B56F40750,next Node = 0000000000000000,element=470
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40770,piror Node Address = 0000024B56F40AD0,next Node = 0000000000000000,element=480
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40AF0,piror Node Address = 0000024B56F40770,next Node = 0000000000000000,element=490
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40790,piror Node Address = 0000024B56F40AF0,next Node = 0000000000000000,element=500
[LOG]:insert success
[INFO]:Node Address = 0000024B56F407F0,piror Node Address = 0000024B56F40790,next Node = 0000000000000000,element=510
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40AB0,piror Node Address = 0000024B56F407F0,next Node = 0000000000000000,element=520
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40850,piror Node Address = 0000024B56F40AB0,next Node = 0000000000000000,element=530
[LOG]:insert success
[INFO]:Node Address = 0000024B56F408F0,piror Node Address = 0000024B56F40850,next Node = 0000000000000000,element=540
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40510,piror Node Address = 0000024B56F408F0,next Node = 0000000000000000,element=550
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40910,piror Node Address = 0000024B56F40510,next Node = 0000000000000000,element=560
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40970,piror Node Address = 0000024B56F40910,next Node = 0000000000000000,element=570
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40990,piror Node Address = 0000024B56F40970,next Node = 0000000000000000,element=580
[LOG]:insert success
[INFO]:Node Address = 0000024B56F409B0,piror Node Address = 0000024B56F40990,next Node = 0000000000000000,element=590
[LOG]:insert success
[INFO]:Node Address = 0000024B56F409F0,piror Node Address = 0000024B56F409B0,next Node = 0000000000000000,element=600
已插入 60 个元素
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40A10,piror Node Address = 0000024B56F409F0,next Node = 0000000000000000,element=610
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40A30,piror Node Address = 0000024B56F40A10,next Node = 0000000000000000,element=620
[LOG]:insert success
[INFO]:Node Address = 0000024B56F406B0,piror Node Address = 0000024B56F40A30,next Node = 0000000000000000,element=630
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40530,piror Node Address = 0000024B56F406B0,next Node = 0000000000000000,element=640
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40B10,piror Node Address = 0000024B56F40530,next Node = 0000000000000000,element=650
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40A50,piror Node Address = 0000024B56F40B10,next Node = 0000000000000000,element=660
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40B70,piror Node Address = 0000024B56F40A50,next Node = 0000000000000000,element=670
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40550,piror Node Address = 0000024B56F40B70,next Node = 0000000000000000,element=680
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40590,piror Node Address = 0000024B56F40550,next Node = 0000000000000000,element=690
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40B90,piror Node Address = 0000024B56F40590,next Node = 0000000000000000,element=700
[LOG]:insert success
[INFO]:Node Address = 0000024B56F405B0,piror Node Address = 0000024B56F40B90,next Node = 0000000000000000,element=710
[LOG]:insert success
[INFO]:Node Address = 0000024B56F405D0,piror Node Address = 0000024B56F405B0,next Node = 0000000000000000,element=720
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40610,piror Node Address = 0000024B56F405D0,next Node = 0000000000000000,element=730
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40630,piror Node Address = 0000024B56F40610,next Node = 0000000000000000,element=740
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40650,piror Node Address = 0000024B56F40630,next Node = 0000000000000000,element=750
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40670,piror Node Address = 0000024B56F40650,next Node = 0000000000000000,element=760
[LOG]:insert success
[INFO]:Node Address = 0000024B56F406F0,piror Node Address = 0000024B56F40670,next Node = 0000000000000000,element=770
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40F60,piror Node Address = 0000024B56F406F0,next Node = 0000000000000000,element=780
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40DE0,piror Node Address = 0000024B56F40F60,next Node = 0000000000000000,element=790
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40EC0,piror Node Address = 0000024B56F40DE0,next Node = 0000000000000000,element=800
已插入 80 个元素
[LOG]:insert success
[INFO]:Node Address = 0000024B56F413E0,piror Node Address = 0000024B56F40EC0,next Node = 0000000000000000,element=810
[LOG]:insert success
[INFO]:Node Address = 0000024B56F41180,piror Node Address = 0000024B56F413E0,next Node = 0000000000000000,element=820
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40CC0,piror Node Address = 0000024B56F41180,next Node = 0000000000000000,element=830
[LOG]:insert success
[INFO]:Node Address = 0000024B56F41220,piror Node Address = 0000024B56F40CC0,next Node = 0000000000000000,element=840
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40D20,piror Node Address = 0000024B56F41220,next Node = 0000000000000000,element=850
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40D80,piror Node Address = 0000024B56F40D20,next Node = 0000000000000000,element=860
[LOG]:insert success
[INFO]:Node Address = 0000024B56F41320,piror Node Address = 0000024B56F40D80,next Node = 0000000000000000,element=870
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40CE0,piror Node Address = 0000024B56F41320,next Node = 0000000000000000,element=880
[LOG]:insert success
[INFO]:Node Address = 0000024B56F41060,piror Node Address = 0000024B56F40CE0,next Node = 0000000000000000,element=890
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40F80,piror Node Address = 0000024B56F41060,next Node = 0000000000000000,element=900
[LOG]:insert success
[INFO]:Node Address = 0000024B56F41140,piror Node Address = 0000024B56F40F80,next Node = 0000000000000000,element=910
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40DA0,piror Node Address = 0000024B56F41140,next Node = 0000000000000000,element=920
[LOG]:insert success
[INFO]:Node Address = 0000024B56F410E0,piror Node Address = 0000024B56F40DA0,next Node = 0000000000000000,element=930
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40D00,piror Node Address = 0000024B56F410E0,next Node = 0000000000000000,element=940
[LOG]:insert success
[INFO]:Node Address = 0000024B56F411A0,piror Node Address = 0000024B56F40D00,next Node = 0000000000000000,element=950
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40EE0,piror Node Address = 0000024B56F411A0,next Node = 0000000000000000,element=960
[LOG]:insert success
[INFO]:Node Address = 0000024B56F41160,piror Node Address = 0000024B56F40EE0,next Node = 0000000000000000,element=970
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40DC0,piror Node Address = 0000024B56F41160,next Node = 0000000000000000,element=980
[LOG]:insert success
[INFO]:Node Address = 0000024B56F411C0,piror Node Address = 0000024B56F40DC0,next Node = 0000000000000000,element=990
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40D40,piror Node Address = 0000024B56F411C0,next Node = 0000000000000000,element=1000
已插入 100 个元素
[0000024B56F3E0A0,10,0000024B56F3E160]<->[0000024B56F3E340,20,0000024B56F3E320]<->[0000024B56F3E160,30,0000024B56F3E2C0]<->[0000024B56F3E320,40,0000024B56F3E180]<->[0000024B56F3E2C0,50,0000024B56F3E080]<->[0000024B56F3E180,60,0000024B56F3E0C0]<->[0000024B56F3E080,70,0000024B56F3E240]<->[0000024B56F3E0C0,80,0000024B56F3E0E0]<->[0000024B56F3E240,90,0000024B56F3E3A0]<->[0000024B56F3E0E0,100,0000024B56F3E260]<->[0000024B56F3E3A0,110,0000024B56F3E2A0]<->[0000024B56F3E260,120,0000024B56F3E100]<->[0000024B56F3E2A0,130,0000024B56F3E2E0]<->[0000024B56F3E100,140,0000024B56F3E300]<->[0000024B56F3E2E0,150,0000024B56F3E360]<->[0000024B56F3E300,160,0000024B56F40950]<->[0000024B56F3E360,170,0000024B56F406D0]<->[0000024B56F40950,180,0000024B56F405F0]<->[0000024B56F406D0,190,0000024B56F40570]<->[0000024B56F405F0,200,0000024B56F404B0]<->[0000024B56F40570,210,0000024B56F404F0]<->[0000024B56F404B0,220,0000024B56F40BD0]<->[0000024B56F404F0,230,0000024B56F40BB0]<->[0000024B56F40BD0,240,0000024B56F40690]<->[0000024B56F40BB0,250,0000024B56F40450]<->[0000024B56F40690,260,0000024B56F40B30]<->[0000024B56F40450,270,0000024B56F40490]<->[0000024B56F40B30,280,0000024B56F40870]<->[0000024B56F40490,290,0000024B56F409D0]<->[0000024B56F40870,300,0000024B56F40890]<->[0000024B56F409D0,310,0000024B56F407D0]<->[0000024B56F40890,320,0000024B56F40710]<->[0000024B56F407D0,330,0000024B56F407B0]<->[0000024B56F40710,340,0000024B56F40810]<->[0000024B56F407B0,350,0000024B56F40730]<->[0000024B56F40810,360,0000024B56F40A70]<->[0000024B56F40730,370,0000024B56F408B0]<->[0000024B56F40A70,380,0000024B56F40470]<->[0000024B56F408B0,390,0000024B56F40930]<->[0000024B56F40470,400,0000024B56F40830]<->[0000024B56F40930,410,0000024B56F40A90]<->[0000024B56F40830,420,0000024B56F40B50]<->[0000024B56F40A90,430,0000024B56F404D0]<->[0000024B56F40B50,440,0000024B56F408D0]<->[0000024B56F404D0,450,0000024B56F40750]<->[0000024B56F408D0,460,0000024B56F40AD0]<->[0000024B56F40750,470,0000024B56F40770]<->[0000024B56F40AD0,480,0000024B56F40AF0]<->[0000024B56F40770,490,0000024B56F40790]<->[0000024B56F40AF0,500,0000024B56F407F0]<->[0000024B56F40790,510,0000024B56F40AB0]<->[0000024B56F407F0,520,0000024B56F40850]<->[0000024B56F40AB0,530,0000024B56F408F0]<->[0000024B56F40850,540,0000024B56F40510]<->[0000024B56F408F0,550,0000024B56F40910]<->[0000024B56F40510,560,0000024B56F40970]<->[0000024B56F40910,570,0000024B56F40990]<->[0000024B56F40970,580,0000024B56F409B0]<->[0000024B56F40990,590,0000024B56F409F0]<->[0000024B56F409B0,600,0000024B56F40A10]<->[0000024B56F409F0,610,0000024B56F40A30]<->[0000024B56F40A10,620,0000024B56F406B0]<->[0000024B56F40A30,630,0000024B56F40530]<->[0000024B56F406B0,640,0000024B56F40B10]<->[0000024B56F40530,650,0000024B56F40A50]<->[0000024B56F40B10,660,0000024B56F40B70]<->[0000024B56F40A50,670,0000024B56F40550]<->[0000024B56F40B70,680,0000024B56F40590]<->[0000024B56F40550,690,0000024B56F40B90]<->[0000024B56F40590,700,0000024B56F405B0]<->[0000024B56F40B90,710,0000024B56F405D0]<->[0000024B56F405B0,720,0000024B56F40610]<->[0000024B56F405D0,730,0000024B56F40630]<->[0000024B56F40610,740,0000024B56F40650]<->[0000024B56F40630,750,0000024B56F40670]<->[0000024B56F40650,760,0000024B56F406F0]<->[0000024B56F40670,770,0000024B56F40F60]<->[0000024B56F406F0,780,0000024B56F40DE0]<->[0000024B56F40F60,790,0000024B56F40EC0]<->[0000024B56F40DE0,800,0000024B56F413E0]<->[0000024B56F40EC0,810,0000024B56F41180]<->[0000024B56F413E0,820,0000024B56F40CC0]<->[0000024B56F41180,830,0000024B56F41220]<->[0000024B56F40CC0,840,0000024B56F40D20]<->[0000024B56F41220,850,0000024B56F40D80]<->[0000024B56F40D20,860,0000024B56F41320]<->[0000024B56F40D80,870,0000024B56F40CE0]<->[0000024B56F41320,880,0000024B56F41060]<->[0000024B56F40CE0,890,0000024B56F40F80]<->[0000024B56F41060,900,0000024B56F41140]<->[0000024B56F40F80,910,0000024B56F40DA0]<->[0000024B56F41140,920,0000024B56F410E0]<->[0000024B56F40DA0,930,0000024B56F40D00]<->[0000024B56F410E0,940,0000024B56F411A0]<->[0000024B56F40D00,950,0000024B56F40EE0]<->[0000024B56F411A0,960,0000024B56F41160]<->[0000024B56F40EE0,970,0000024B56F40DC0]<->[0000024B56F41160,980,0000024B56F411C0]<->[0000024B56F40DC0,990,0000024B56F40D40]<->[0000024B56F411C0,1000,0000000000000000]<->
--- 删除50个元素 (每隔一个删一个) ---
[INFO]:delete success, Node Address = 0000024B56F3E340,Piror Node Adress = 0000024B56F3E0A0,next Node Adress = 0000024B56F3E160,element = 10
[INFO]:delete success, Node Address = 0000024B56F3E320,Piror Node Adress = 0000024B56F3E160,next Node Adress = 0000024B56F3E2C0,element = 30
[INFO]:delete success, Node Address = 0000024B56F3E180,Piror Node Adress = 0000024B56F3E2C0,next Node Adress = 0000024B56F3E080,element = 50
[INFO]:delete success, Node Address = 0000024B56F3E0C0,Piror Node Adress = 0000024B56F3E080,next Node Adress = 0000024B56F3E240,element = 70
[INFO]:delete success, Node Address = 0000024B56F3E0E0,Piror Node Adress = 0000024B56F3E240,next Node Adress = 0000024B56F3E3A0,element = 90
[INFO]:delete success, Node Address = 0000024B56F3E260,Piror Node Adress = 0000024B56F3E3A0,next Node Adress = 0000024B56F3E2A0,element = 110
[INFO]:delete success, Node Address = 0000024B56F3E100,Piror Node Adress = 0000024B56F3E2A0,next Node Adress = 0000024B56F3E2E0,element = 130
[INFO]:delete success, Node Address = 0000024B56F3E300,Piror Node Adress = 0000024B56F3E2E0,next Node Adress = 0000024B56F3E360,element = 150
[INFO]:delete success, Node Address = 0000024B56F40950,Piror Node Adress = 0000024B56F3E360,next Node Adress = 0000024B56F406D0,element = 170
[INFO]:delete success, Node Address = 0000024B56F405F0,Piror Node Adress = 0000024B56F406D0,next Node Adress = 0000024B56F40570,element = 190
已删除 10 个元素
[INFO]:delete success, Node Address = 0000024B56F404B0,Piror Node Adress = 0000024B56F40570,next Node Adress = 0000024B56F404F0,element = 210
[INFO]:delete success, Node Address = 0000024B56F40BD0,Piror Node Adress = 0000024B56F404F0,next Node Adress = 0000024B56F40BB0,element = 230
[INFO]:delete success, Node Address = 0000024B56F40690,Piror Node Adress = 0000024B56F40BB0,next Node Adress = 0000024B56F40450,element = 250
[INFO]:delete success, Node Address = 0000024B56F40B30,Piror Node Adress = 0000024B56F40450,next Node Adress = 0000024B56F40490,element = 270
[INFO]:delete success, Node Address = 0000024B56F40870,Piror Node Adress = 0000024B56F40490,next Node Adress = 0000024B56F409D0,element = 290
[INFO]:delete success, Node Address = 0000024B56F40890,Piror Node Adress = 0000024B56F409D0,next Node Adress = 0000024B56F407D0,element = 310
[INFO]:delete success, Node Address = 0000024B56F40710,Piror Node Adress = 0000024B56F407D0,next Node Adress = 0000024B56F407B0,element = 330
[INFO]:delete success, Node Address = 0000024B56F40810,Piror Node Adress = 0000024B56F407B0,next Node Adress = 0000024B56F40730,element = 350
[INFO]:delete success, Node Address = 0000024B56F40A70,Piror Node Adress = 0000024B56F40730,next Node Adress = 0000024B56F408B0,element = 370
[INFO]:delete success, Node Address = 0000024B56F40470,Piror Node Adress = 0000024B56F408B0,next Node Adress = 0000024B56F40930,element = 390
已删除 20 个元素
[INFO]:delete success, Node Address = 0000024B56F40830,Piror Node Adress = 0000024B56F40930,next Node Adress = 0000024B56F40A90,element = 410
[INFO]:delete success, Node Address = 0000024B56F40B50,Piror Node Adress = 0000024B56F40A90,next Node Adress = 0000024B56F404D0,element = 430
[INFO]:delete success, Node Address = 0000024B56F408D0,Piror Node Adress = 0000024B56F404D0,next Node Adress = 0000024B56F40750,element = 450
[INFO]:delete success, Node Address = 0000024B56F40AD0,Piror Node Adress = 0000024B56F40750,next Node Adress = 0000024B56F40770,element = 470
[INFO]:delete success, Node Address = 0000024B56F40AF0,Piror Node Adress = 0000024B56F40770,next Node Adress = 0000024B56F40790,element = 490
[INFO]:delete success, Node Address = 0000024B56F407F0,Piror Node Adress = 0000024B56F40790,next Node Adress = 0000024B56F40AB0,element = 510
[INFO]:delete success, Node Address = 0000024B56F40850,Piror Node Adress = 0000024B56F40AB0,next Node Adress = 0000024B56F408F0,element = 530
[INFO]:delete success, Node Address = 0000024B56F40510,Piror Node Adress = 0000024B56F408F0,next Node Adress = 0000024B56F40910,element = 550
[INFO]:delete success, Node Address = 0000024B56F40970,Piror Node Adress = 0000024B56F40910,next Node Adress = 0000024B56F40990,element = 570
[INFO]:delete success, Node Address = 0000024B56F409B0,Piror Node Adress = 0000024B56F40990,next Node Adress = 0000024B56F409F0,element = 590
已删除 30 个元素
[INFO]:delete success, Node Address = 0000024B56F40A10,Piror Node Adress = 0000024B56F409F0,next Node Adress = 0000024B56F40A30,element = 610
[INFO]:delete success, Node Address = 0000024B56F406B0,Piror Node Adress = 0000024B56F40A30,next Node Adress = 0000024B56F40530,element = 630
[INFO]:delete success, Node Address = 0000024B56F40B10,Piror Node Adress = 0000024B56F40530,next Node Adress = 0000024B56F40A50,element = 650
[INFO]:delete success, Node Address = 0000024B56F40B70,Piror Node Adress = 0000024B56F40A50,next Node Adress = 0000024B56F40550,element = 670
[INFO]:delete success, Node Address = 0000024B56F40590,Piror Node Adress = 0000024B56F40550,next Node Adress = 0000024B56F40B90,element = 690
[INFO]:delete success, Node Address = 0000024B56F405B0,Piror Node Adress = 0000024B56F40B90,next Node Adress = 0000024B56F405D0,element = 710
[INFO]:delete success, Node Address = 0000024B56F40610,Piror Node Adress = 0000024B56F405D0,next Node Adress = 0000024B56F40630,element = 730
[INFO]:delete success, Node Address = 0000024B56F40650,Piror Node Adress = 0000024B56F40630,next Node Adress = 0000024B56F40670,element = 750
[INFO]:delete success, Node Address = 0000024B56F406F0,Piror Node Adress = 0000024B56F40670,next Node Adress = 0000024B56F40F60,element = 770
[INFO]:delete success, Node Address = 0000024B56F40DE0,Piror Node Adress = 0000024B56F40F60,next Node Adress = 0000024B56F40EC0,element = 790
已删除 40 个元素
[INFO]:delete success, Node Address = 0000024B56F413E0,Piror Node Adress = 0000024B56F40EC0,next Node Adress = 0000024B56F41180,element = 810
[INFO]:delete success, Node Address = 0000024B56F40CC0,Piror Node Adress = 0000024B56F41180,next Node Adress = 0000024B56F41220,element = 830
[INFO]:delete success, Node Address = 0000024B56F40D20,Piror Node Adress = 0000024B56F41220,next Node Adress = 0000024B56F40D80,element = 850
[INFO]:delete success, Node Address = 0000024B56F41320,Piror Node Adress = 0000024B56F40D80,next Node Adress = 0000024B56F40CE0,element = 870
[INFO]:delete success, Node Address = 0000024B56F41060,Piror Node Adress = 0000024B56F40CE0,next Node Adress = 0000024B56F40F80,element = 890
[INFO]:delete success, Node Address = 0000024B56F41140,Piror Node Adress = 0000024B56F40F80,next Node Adress = 0000024B56F40DA0,element = 910
[INFO]:delete success, Node Address = 0000024B56F410E0,Piror Node Adress = 0000024B56F40DA0,next Node Adress = 0000024B56F40D00,element = 930
[INFO]:delete success, Node Address = 0000024B56F411A0,Piror Node Adress = 0000024B56F40D00,next Node Adress = 0000024B56F40EE0,element = 950
[INFO]:delete success, Node Address = 0000024B56F41160,Piror Node Adress = 0000024B56F40EE0,next Node Adress = 0000024B56F40DC0,element = 970
[INFO]:delete success, Node Address = 0000024B56F411C0,Piror Node Adress = 0000024B56F40DC0,next Node Adress = 0000024B56F40D40,element = 990
已删除 50 个元素
[0000024B56F3E0A0,20,0000024B56F3E2C0]<->[0000024B56F3E160,40,0000024B56F3E080]<->[0000024B56F3E2C0,60,0000024B56F3E240]<->[0000024B56F3E080,80,0000024B56F3E3A0]<->[0000024B56F3E240,100,0000024B56F3E2A0]<->[0000024B56F3E3A0,120,0000024B56F3E2E0]<->[0000024B56F3E2A0,140,0000024B56F3E360]<->[0000024B56F3E2E0,160,0000024B56F406D0]<->[0000024B56F3E360,180,0000024B56F40570]<->[0000024B56F406D0,200,0000024B56F404F0]<->[0000024B56F40570,220,0000024B56F40BB0]<->[0000024B56F404F0,240,0000024B56F40450]<->[0000024B56F40BB0,260,0000024B56F40490]<->[0000024B56F40450,280,0000024B56F409D0]<->[0000024B56F40490,300,0000024B56F407D0]<->[0000024B56F409D0,320,0000024B56F407B0]<->[0000024B56F407D0,340,0000024B56F40730]<->[0000024B56F407B0,360,0000024B56F408B0]<->[0000024B56F40730,380,0000024B56F40930]<->[0000024B56F408B0,400,0000024B56F40A90]<->[0000024B56F40930,420,0000024B56F404D0]<->[0000024B56F40A90,440,0000024B56F40750]<->[0000024B56F404D0,460,0000024B56F40770]<->[0000024B56F40750,480,0000024B56F40790]<->[0000024B56F40770,500,0000024B56F40AB0]<->[0000024B56F40790,520,0000024B56F408F0]<->[0000024B56F40AB0,540,0000024B56F40910]<->[0000024B56F408F0,560,0000024B56F40990]<->[0000024B56F40910,580,0000024B56F409F0]<->[0000024B56F40990,600,0000024B56F40A30]<->[0000024B56F409F0,620,0000024B56F40530]<->[0000024B56F40A30,640,0000024B56F40A50]<->[0000024B56F40530,660,0000024B56F40550]<->[0000024B56F40A50,680,0000024B56F40B90]<->[0000024B56F40550,700,0000024B56F405D0]<->[0000024B56F40B90,720,0000024B56F40630]<->[0000024B56F405D0,740,0000024B56F40670]<->[0000024B56F40630,760,0000024B56F40F60]<->[0000024B56F40670,780,0000024B56F40EC0]<->[0000024B56F40F60,800,0000024B56F41180]<->[0000024B56F40EC0,820,0000024B56F41220]<->[0000024B56F41180,840,0000024B56F40D80]<->[0000024B56F41220,860,0000024B56F40CE0]<->[0000024B56F40D80,880,0000024B56F40F80]<->[0000024B56F40CE0,900,0000024B56F40DA0]<->[0000024B56F40F80,920,0000024B56F40D00]<->[0000024B56F40DA0,940,0000024B56F40EE0]<->[0000024B56F40D00,960,0000024B56F40DC0]<->[00000200000000,element=1 [LOG]:insert success [INFO]:Node Address = 0000024B56F40F00,piror Node Address = 0000024B56F41020,next Node = 0000000000000000,element=3 [LOG]:insert success [INFO]:Node Address = 0000024B56F40DE0,piror Node Address = 0000024B56F40F00,next Node = 0000000000000000,element=5 [0000024B56F41160,1,0000024B56F40F00]<->[0000024B56F41020,3,0000024B56F40DE0]<->[0000024B56F40F00,5,0000000000000000]<-> 在位置2插入2: [LOG]:insert success [INFO]:Node Address = 0000024B56F412E0,piror Node Address = 0000024B56F41020,next Node = 0000024B56F40F00,element=2 [0000024B56F41160,1,0000024B56F412E0]<->[0000024B56F41020,2,0000024B56F40F00]<->[0000024B56F412E0,3,0000024B56F40DE0]<->[0000024B56F40F00,5,0000000000000000]<-> 在位置4插入4: [LOG]:insert success [INFO]:Node Address = 0000024B56F41320,piror Node Address = 0000024B56F40F00,next Node = 0000024B56F40DE0,element=4 [0000024B56F41160,1,0000024B56F412E0]<->[0000024B56F41020,2,0000024B56F40F00]<->[0000024B56F412E0,3,0000024B56F41320]<->[0000024B56F40F00,4,0000024B56F40DE0]<->[0000024B56F41320,5,0000000000000000]<-> 删除位置3: [INFO]:delete success, Node Address = 0000024B56F40F00,Piror Node Adress = 0000024B56F412E0,next Node Adress = 0000024B56F41320,element = 3 [0000024B56F41160,1,0000024B56F412E0]<->[0000024B56F41020,2,0000024B56F41320]<->[0000024B56F412E0,4,0000024B56F40DE0]<->[0000024B56F41320,5,0000000000000000]<-> 最终结果: [0000024B56F41160,1,0000024B56F412E0]<->[0000024B56F41020,2,0000024B56F41320]<->[0000024B56F412E0,4,0000024B56F40DE0]<->[0000024B56F41320,5,0000000000000000]<-> ========== 所有测试完成 ==========4B56F40EE0,980,0000024B56F40D40]<->[0000024B56F40DC0,1000,0000000000000000]<->
========== 5. 双向链接正确性验证 ==========
[ERROR]:Init success
[INFO]:Head Address = 0000024B56F40FC0
[LOG]:insert success
[INFO]:Node Address = 0000024B56F41200,piror Node Address = 0000024B56F40FC0,next Node = 0000000000000000,element=100
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40E20,piror Node Address = 0000024B56F41200,next Node = 0000000000000000,element=200
[LOG]:insert success
[INFO]:Node Address = 0000024B56F40F20,piror Node Address = 0000024B56F40E20,next Node = 0000000000000000,element=300
正向遍历: [0000024B56F40FC0,100,0000024B56F40E20]<->[0000024B56F41200,200,0000024B56F40F20]<->[0000024B56F40E20,300,0000000000000000]<->
反向遍历验证: [300,0000024B56F40E20]<->[200,0000024B56F41200]<->[100,0000024B56F40FC0]<->Head
========== 6. 综合操作测试 ==========
[ERROR]:Init success
[INFO]:Head Address = 0000024B56F41160
初始插入1,3,5:
[LOG]:insert success
[INFO]:Node Address = 0000024B56F41020,piror Node Address = 0000024B56F41160,next Node = 00000000