c语言insertHead函数怎么用,(C语言)写一个函数insert,用来向一个动态链表插入节点...

写一个函数insert,用来向一个动态链表插入节点

用creat,print,del,insert四个函数,编写主函数,先后调用这些函数,实现链表的建立,输出,删除和插入,从主函数中指定需要删除和插入的节点的数据 https://blog..net/qq_41071068/article/details/90117026

#define _CRT_SECURE_NO_WARNINGS

#include

#include

struct arr {

int num;

struct arr* next;

};

typedef struct arr arr;

arr* creat(int n) {

arr* s;

arr* p;

arr* head = (arr*)malloc(sizeof(arr));//头结点

p = head;

for (int i = 0; i < n; ++i) {

s = (arr*)malloc(sizeof(arr));

s->num = i + 1;

s->next = p->next;

p->next = s;

p = p->next;

if (i == n - 1) {

p->next = NULL;

}

}

return head;

}

void print(arr* head) {

for (arr* p = head ->next; p != NULL; p = p->next) {

printf("%d\t", p->num);

}

printf("\n");

}

arr* insert(int m, arr* head) {

int n;

arr* p = head;

arr* s = (arr*)malloc(sizeof(arr));

printf("请输入num的值\n");

scanf("%d", &n);

s->num = n;

for (int i = 0; i < m; ++i) {

p = p->next;

}

s->next = p->next;

p->next = s;

return head;

}

void main() {

int n, m;

printf("请输入链表的长度\n");

for (scanf("%d", &n); n <= 0; printf("您输入有误,请重新输入\n"), scanf("%d", &n));

arr* head;

head = creat(n);

printf("输出未插入新节点前链表\n");

print(head);

printf("请输入需要插入的位置(0<= m <=%d)\n", n);

for (scanf("%d", &m); m < 0 || m > n; printf("您输入有误,请重新输入\n"), scanf("%d", &m));

head = insert(m, head);

print(head);

system("pause");

}

ae093b9a915f6472cea80076f06b7d66.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值