计算机软件基础(自考本科线性表)精要.ppt

计算机软件基础(自考本科线性表)精要

四、单循环链表 2.单循环链表的删除运算 例如:一个单循环链表,没有头指针只有尾指针r,试 写出删除尾指针r的前一个节点。 a1 an-2 an r a0 … an-1 四、单循环链表 2.单循环链表的删除运算 a1 an-2 an r a0 … an-1 Step1:找出r节点前前的那个节点p; Step2:让p指向 q的下一个节点; Step3:从链表中删除q所指向的节点; Step3:回收q。 p p-next q p-next-next 四、单循环链表 2.单循环链表的删除运算 void delete (r) { struct node *p,*q; //定义两个node型指针p和q p=r-next; //让p指向r的后继节点(给p赋初值) while(p-next-next != r) //找r节点的前前节点 { p=p-next; } q=p-next; //将要删除节点的地址保存到q中 p-next=r; //从链表中删除q free(q); //回收被删除节点q的空间 } 五、双循环链表 1.双循环链表的形态 h a b c 非空表: h 空表: 五、双循环链表 2.双循环链表的类型定义 每个节点有3个成员: prior data

文档评论(0)

1亿VIP精品文档

相关文档