删除不带头结点的循环单链表的结点x的前驱结点
程序员文章站
2024-03-21 13:44:34
...
1.存储结构描述
typedef struct LNode
{
Elemtype data;
struct LNode *next;
}LNode,*CLinkList;
void init(CLinkList &T)
{
L->next=L;
}
2. 有两种循环方法,但是都无法解决需要删除第一个结点时候循环链表的连续问题,可能需要题目进一步约束吧
void DeletePre(CLinkList &L,Elemtpye x)
{
LNode *p=L->next,*q=L,*r=L;
while(p->data!=x)
{
r=q;
q=p;
p=p->next;
}
r->next=p;
delete q;
}
void DeletePre(CLinkList &L,Elemtpye x)
{
LNode *p=L,*q=L,*r=L;
while(p->next!=NULL)
{
p=p->next;
if(p->data==x)
break;
r=q;
q=p;
}
delete q;
r->next=p;
}
上一篇: 递归找上下级以tree的格式返回数值
下一篇: 宏和函数的优缺点