解题思路:
1.建立空的单链表。
2.依次插入n个元素。
3.遍历单链表的同时判断该结点是否为要删除的结点(所有的值为v的)。
4.删除后,打印单链表检测是否真的删除掉了。
注意事项:
***:利用尾插法建立单链表注意插入完元素后,记得把rear的next域置为空。
参考代码:
#include<stdio.h>
#include <stdlib.h>
#define MAXSIZES 1e5
typedef int Elemtype;
typedef struct Node
{
Elemtype data;
struct Node * next;
}Node;
typedef Node * LinkList;
int main()
{
int n,v;
Node *r,*p,*q;
//创建空的单链表。
LinkList L = (LinkList)malloc(sizeof(Node)*MAXSIZES);
L->next = NULL;
r = L;
scanf("%d",&n);
//读入n个结点到单链表中。
for(int i = 1;i <= n;i++)
{
p = (Node *)malloc(sizeof(Node));
scanf("%d",&p->data);
r->next = p;
r = p;
}
if(r != NULL) r->next = NULL;
scanf("%d",&v);
p = L;
//寻找值为v的元素,并删除该结点。
while(p->next != NULL)
{
if(p->next->data == v)
{
q = p->next;
p->next = q->next;
free(q);
}
else
{
p = p->next;
}
}
p = L->next;
//打印删除后的单链表。
while(p)
{
printf("%d ",p->data);
p = p->next;
}
//释放头结点。
free(L);
return 0;
}
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:693 |
2006年春浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:819 |
大小写转换 (C语言代码)浏览:858 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:464 |
众数问题 (C语言代码)浏览:830 |
WU-输出九九乘法表 (C++代码)浏览:1671 |
最小公倍数 (C语言代码)浏览:1029 |
A+B for Input-Output Practice (VII) (C语言代码)浏览:528 |
C语言程序设计教程(第三版)课后习题11.8 (C语言代码)浏览:691 |
复数求和 (C语言代码)浏览:926 |