Toggle navigation
C语言网
教程
博客
团队
训练
训练
题库
题集
状态
排名
比赛
比赛
标准
自主
考试
网课
AI助手
AI助手
代码解释
语言转换
编程助手
BA27AY
私信TA
用户名:BA27AY
访问量:754
签 名:
等 级
P4
排 名
6912
经 验
1290
参赛次数
0
文章发表
2
年 龄
0
在职情况
学生
学 校
中国地质大学(武汉)
专 业
自我简介:
TA的其他文章
数据结构-链表的基本操作 【简洁版本题解】
浏览:
329
你可能喜欢
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)
浏览:
682
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)
浏览:
700
C二级辅导-同因查找 (C语言代码)
浏览:
459
统计字符 (C语言描述运用ctype.h)
浏览:
1129
C语言考试练习题_排列 (C++代码)
浏览:
1087
数据结构-链表的基本操作 【简洁版本题解】
作者:
BA27AY
发表时间:2022-05-24 00:08:35
浏览:329 | 评论:0
原题链接:
数据结构-链表的基本操作
```c #include
#include
#include
//list definition typedef struct Node { int data; struct Node *next; }Node, *Linkedlist; //list initialization Linkedlist listInit() { Node *L; L = (Node *)malloc(sizeof(Node)); if(L == NULL) { printf("List initialization failed"); exit(0); } L->next = NULL; return L; } //list creation by Head_Insert Linkedlist listCreatH(Linkedlist L, int n) { int x; for(int i = 0; i < n; i++) { scanf("%d", &x); Node *p = (Node *)malloc(sizeof(Node)); p->data = x; p->next = L->next; L->next = p; } return L; } Linkedlist listInsert(Linkedlist L, int rank, int x) { Node *p = L; for(int i = 1; i < rank; i++) p = p->next; if(p == NULL) { printf("insert fail\n"); return 0; } Node *s = (Node *)malloc(sizeof(Node)); s->data = x; s->next = p->next; p->next = s; printf("insert OK\n"); return L; } Linkedlist listDelete(Linkedlist L, int rank) { if(L->next == NULL) { printf("delete fail\n"); return 0; } Node *pre = L, *p; for(int i = 1; i < rank; i++) pre = pre->next; p = pre->next; pre->next = p->next; free(p); printf("delete OK\n"); return L; } void listGet(Linkedlist L, int rank) { if(L->next == NULL) { printf("get fail\n"); return; } Node *p = L; for(int i = 0; i < rank; i++) p = p->next; printf("%d\n", p->data); } void listShow(Linkedlist L) { Node *p = L->next; if(p == NULL) printf("Link list is empty\n"); else { while(p) { printf("%d ", p->data); p = p->next; } printf("\n"); } } int main () { Node *L; L = listInit(); int num, operate_num, rank, insert_value; scanf("%d", &num); L = listCreatH(L, num); scanf("%d", &operate_num); char operate_name[10]; for(int i = 0; i < operate_num; i++) { scanf("%s", &operate_name); if(strcmp(operate_name, "get") == 0) { scanf("%d", &rank); listGet(L, rank); } else if(strcmp(operate_name, "insert") == 0) { scanf("%d %d", &rank, &insert_value); listInsert(L, rank, insert_value); } else if(strcmp(operate_name, "delete") == 0) { scanf("%d", &rank); listDelete(L, rank); } else if(strcmp(operate_name, "show") == 0) { listShow(L); } } return 0; } ```
0.0分
1 人评分
分享
收藏
C语言
数据结构
链表操作
C语言网推出会员服务,提供C/C++/算法/Python等多套视频学练课程+源码资源社群答疑+私活推荐等资源,享受丰富的技术学习到变现的乐趣,
以含金量和学习效果勇敢挑战同类辅导
! 点击了解开通
评论区
«
»
提交
精彩推荐
C二级辅导-分段函数 (C语言代码)
浏览:
839
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)
浏览:
534
C语言程序设计教程(第三版)课后习题9.10 (C语言代码)
浏览:
597
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)
浏览:
519
C二级辅导-进制转换 (C语言代码)
浏览:
615
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)
浏览:
1430
C语言程序设计教程(第三版)课后习题9.1 (Java代码)
浏览:
467
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)
浏览:
593
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)
浏览:
663
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)
浏览:
558
有问题
,
问问AI
代码解释
语言转换
编程助手