编写算法函数linklist delallx(linklist head, int x),删除带头结点单链表head中所有值为x的结点。
2017-11-04 10:51
2381 查看
/*
编写算法函数linklist delallx(linklist head, int x),删除带头结点单链表head中所有值为x的结点。
*/
linklist delallx(linklist head,int x)
{
linklist p=head->next,q=NULL;
while(p!=NULL)
{
while(p->info!=x){q=p;p=p->next;} //查找x
if(q==NULL) //要删除的x就在第一个
{
head->next=p->next;
}
else
{
q->next=p->next;
}
p=p->next;
}
free(p); //释放p结点
return head;
}
int main()
{ datatype x;
linklist head;
head=creatbyqueue(); /*尾插入法建立带头结点的单链表*/
print(head);
printf("请输入要删除的值:");
scanf("%d",&x);
head=delallx(head,x);
print(head);
delList(head);
return 0;
}
编写算法函数linklist delallx(linklist head, int x),删除带头结点单链表head中所有值为x的结点。
*/
linklist delallx(linklist head,int x)
{
linklist p=head->next,q=NULL;
while(p!=NULL)
{
while(p->info!=x){q=p;p=p->next;} //查找x
if(q==NULL) //要删除的x就在第一个
{
head->next=p->next;
}
else
{
q->next=p->next;
}
p=p->next;
}
free(p); //释放p结点
return head;
}
int main()
{ datatype x;
linklist head;
head=creatbyqueue(); /*尾插入法建立带头结点的单链表*/
print(head);
printf("请输入要删除的值:");
scanf("%d",&x);
head=delallx(head,x);
print(head);
delList(head);
return 0;
}
相关文章推荐
- 假设在长度大于1的循环链表中,即无头结点也无头指针,s为指向链表中的某个结点的指针,试编写算法删除结点s的前驱结点
- 设计一个递归算法,删除不带头结点的单链表L中所有值为x的结点
- 试编写在无头结点的单链表上实现线性表的插入操作的算法,并和带头结点的单链表上的插入操作的算法进行比较
- 编写算法实现建立一个带头结点的含n个元素的双向循环链表H,并在链表H中的第i个位置插入一个元素e
- 编写求导函数的算法,利用原多项式的结点空间存放其异函数,同时释放所有无用节点
- 6-6 求单链表结点的阶乘和(15 分) 本题要求实现一个函数,求单链表L结点的阶乘和。这里默认所有结点的值非负,且题目保证结果在int范围内。
- 设计一个递归算法,删除不带头结点的单链表中所有值为x的结点
- LinkList_withHeadNode(带头结点的单链表)
- 假设以带头结点的循环链表表示队列, 并且只设一个指针指向队尾元素结点(注意不设头指针) 试编写相应的队列初始化,入队列和出队列的算法
- 每天一个小程序(2)——带头结点的链表的创建以及插入和删除
- 编写函数int fun(int lim,int aa[100]),该函数的功能是求出小于或等于lim 的所有素数并放在aa数组中,该函数返回所求的素数的个数?
- [JS]删除链表重复所有结点3
- 有一个带头结点的单链表L={a1,b1,a2,b2,...,an,bn},设计一个算法将其拆分成两个带头结点的单链表A和B,正序链表A={a1,a2,a3...,an},逆序链表B={bn,bn-1,
- C/C++ | 26-17 已知一个单向链表的头,删除其某一个结点的算法
- C语言实现单链表(带头结点)的基本操作(创建,头插法,尾插法,删除结点,打印链表)
- c++链表 建立 输入 输出 删除结点 插入结点 释放链表 的函数
- 不带头结点的单链表的插入,删除,原地转置,判断空,清空,统计节点数目等操作
- 写程序。设ha和hb分别是两个带头结点的非递减有序单链表的头指针,试设计算法,将这两个有序链表合并成一个非递增有序的单链表。要求使用原链表空间,
- (1)建立二叉树的二叉链表。 (2)写出对用二叉链表存储的二叉树进行先序、中序和后序遍历的递归和非递归算法。 (3)写出对用二叉链表存储的二叉树进行层次遍历算法。 (4)求二叉树的所有叶子及结点总数。
- 假设以不带头结点的循环链表表示队列,并且只设一个指针指向队尾结点,但不设头指针。试设计相应的入队和出队的算法