#include"stdio.h"
#include"malloc.h"
typedef struct Node
{
int data;
struct Node* next;
}Node;
Node* create(int n)
{
int x, i;
Node* h , * s , * head = NULL;
h = (Node*)malloc(sizeof(Node));
h->next = NULL;
head = h;
printf("请输入第1个数据:");
scanf_s("%d", &x);
h->data = x;
for (i = 2; i <= n; i++)
{
printf("请输入第%d个数据:", i);
scanf_s("%d", &x);
s = (Node*)malloc(sizeof(Node));
s->data = x;
h->next = s;
h = s;
}
return head;
}
void display(Node* L)
{
Node* k;
k = L;
while (k)
{
printf("%d ", k->data);
k = k->next;
}
printf("\n");
}
void dele(Node* L)
{
Node* p, * q, * r, * s = NULL;
q = L;
p = L->next;
r = L;
while (p != NULL)
{
if (p->data > q->data)
{
q = p;
s = r;
}
r = p;
p = p->next;
}
if (q == L)L = L->next;
else s->next = q->next;
free(q);
}
int main()
{
Node* List = (Node*)malloc(sizeof(Node));
int num;
printf("请输入数据的个数:");
scanf_s("%d", &num);
List = create(num);
printf("原数据:\n");
display(List);
dele(List);
printf("删除最大值后:\n");
display(List);
}
不带头结点的单链表,删除最大值数据后的链表打印不了,各位帮我看看原因。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- weixin_45914955 2022-01-09 11:36关注
建议将为节点的地址设为NULL,否则会出现访存错误,若出现访存错误,将create函数返回之前加入h->next=null
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 求差集那个函数有问题,有无佬可以解决
- ¥15 【提问】基于Invest的水源涵养
- ¥20 微信网友居然可以通过vx号找到我绑的手机号
- ¥15 寻一个支付宝扫码远程授权登录的软件助手app
- ¥15 解riccati方程组
- ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
- ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
- ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
- ¥50 树莓派安卓APK系统签名
- ¥65 汇编语言除法溢出问题