SIEMENS山东省德州市 西门子代理商——西门子华北一级总代理
| 更新时间 2024-11-16 07:00:00 价格 请来电询价 西门子总代理 PLC 西门子一级代 驱动 西门子代理商 伺服电机 联系电话 15903418770 联系手机 15915421161 联系人 张经理 立即询价 |
详细介绍
环形链表初始化
//初始化链表 ---函数中分配内存,需要传入二级指针 void init_list(stData **pList, int len){ int i=0; stData *pTmp1 = NULL; //临时指针1 stData *pTmp2 = NULL; //临时指针2
//先为环形链表分配一个节点的内存 *pList=(stData*)malloc(sizeof(stData)); (*pList)->data=0; (*pList)->pNext=NULL;
//再为剩余的链表元素分配内存 pTmp1 = *pList; //临时指针1指向环形链表的头 for(i=0;i<len-1;i++){ //临时指针2用于逐个申请内存 pTmp2=(stData*)malloc(sizeof(stData)); pTmp2->data=0; pTmp2->pNext=NULL;
//临时指针1的next指向刚分配内存的临时指针2 pTmp1->pNext=pTmp2; //然后临时指针1再指向临时指针2 pTmp1=pTmp2; //printf("init_list i---%d\r\n",i);}
//整个链表长度都分配好内存后,临时指针1再指向链表头,这样就构成了一个环形链表 pTmp1->pNext = *pList;} 分配第1个节点 //先为环形链表分配一个节点的内存 *pList=(stData*)malloc(sizeof(stData));(*pList)->data=0;(*pList)->pNext=NULL;
pTmp1 = *pList; //临时指针1指向环形链表的头 for(i=0;i<len-1;i++){ //临时指针2用于逐个申请内存 pTmp2=(stData*)malloc(sizeof(stData)); pTmp2->data=0; pTmp2->pNext=NULL;
//临时指针1的next指向刚分配内存的临时指针2 pTmp1->pNext=pTmp2; //然后临时指针1再指向临时指针2 pTmp1=pTmp2;} 分配第3个节点 //整个链表长度都分配好内存后,临时指针1再指向链表头,这样就构成了一个环形链表 pTmp1->pNext = *pList;
环形链表的初始化过程如下:
//先为环形链表分配一个节点的内存 *pList=(stData*)malloc(sizeof(stData)); (*pList)->data=0; (*pList)->pNext=NULL;
//再为剩余的链表元素分配内存 pTmp1 = *pList; //临时指针1指向环形链表的头 for(i=0;i<len-1;i++){ //临时指针2用于逐个申请内存 pTmp2=(stData*)malloc(sizeof(stData)); pTmp2->data=0; pTmp2->pNext=NULL;
//临时指针1的next指向刚分配内存的临时指针2 pTmp1->pNext=pTmp2; //然后临时指针1再指向临时指针2 pTmp1=pTmp2; //printf("init_list i---%d\r\n",i);}
//整个链表长度都分配好内存后,临时指针1再指向链表头,这样就构成了一个环形链表 pTmp1->pNext = *pList;}
基本思路是:
首先分配第一个节点,这也是整个环形链表的地址,即pList的指向
然后使用两个临时指针,pTmp1用于连接各个节点(指定各节点的pNext指针指向下一个),pTmp2用于不断分配下一个节点的内存
pTmp1 = *pList; //临时指针1指向环形链表的头
第一个节点的内存先通过pList指针分配,然后临时指针pTmp1也先指向这个节点:
分配第2个节点//临时指针1的next指向刚分配内存的临时指针2 pTmp1->pNext=pTmp2; //然后临时指针1再指向临时指针2 pTmp1=pTmp2;}
pTmp2先分配一个节点内存
pTmp1使第1节点的pNext指向第2个节点
pTmp1再指向第2个节点,为下一次作准备
与分配第2个节点类似,后面的节点分配都是同样的循环操作:
分配Zui后1个节点例子中环形链表的长度为5,因此分配第5个之后,会退出循环,然后:
将pTmp1的pNext指向pList,这样就构成了一个环形链表
链表初始化函数退出后,两个临时指针也会被自动释放
初始化完成后的效果如下,一个5个节点,构成了一个环形,且初始状态,头节点与尾节点均指向pList指向的节点:
相关产品