浙大版《C语言程序设计(第4版)》题目集——习题11-8 单链表结点删除 (20 分)
2021/7/12 14:07:10
本文主要是介绍浙大版《C语言程序设计(第4版)》题目集——习题11-8 单链表结点删除 (20 分),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
本题要求实现两个函数,分别将读入的数据存储为单链表、将链表中所有存储了某给定值的结点删除。链表结点定义如下:
struct ListNode { int data; ListNode *next; };
函数接口定义:
struct ListNode *readlist(); struct ListNode *deletem( struct ListNode *L, int m );
函数readlist
从标准输入读入一系列正整数,按照读入顺序建立单链表。当读到−1时表示输入结束,函数应返回指向单链表头结点的指针。
函数deletem
将单链表L
中所有存储了m
的结点删除。返回指向结果链表头结点的指针。
裁判测试程序样例:
#include <stdio.h> #include <stdlib.h> struct ListNode { int data; struct ListNode *next; }; struct ListNode *readlist(); struct ListNode *deletem( struct ListNode *L, int m ); void printlist( struct ListNode *L ) { struct ListNode *p = L; while (p) { printf("%d ", p->data); p = p->next; } printf("\n"); } int main() { int m; struct ListNode *L = readlist(); scanf("%d", &m); L = deletem(L, m); printlist(L); return 0; } /* 你的代码将被嵌在这里 */
输入样例:
10 11 10 12 10 -1 10
输出样例:
11 12
参考答案:
int size = sizeof(struct ListNode); struct ListNode *readlist() { struct ListNode *p, *head = NULL, *tail = NULL; int data; scanf("%d", &data); while (data != -1) { p = (struct ListNode *)malloc(size); p->data = data; p->next = NULL; if (head == NULL) tail = head = p; //此题也可以不给tail赋值 else tail->next = p; tail = p; scanf("%d", &data); } return head; } struct ListNode *deletem(struct ListNode *L, int m) { struct ListNode *ptr1, *ptr2; // 删除的节点为表头节点 while (L && L->data == m) { ptr2 = L; L = L->next; free(ptr2); } // 空链表 if (L == NULL) return NULL; // 删除的节点不是表头节点 ptr1 = L; ptr2 = ptr1->next; while (ptr2) { if (ptr2->data == m) { ptr1->next = ptr2->next; free(ptr2); } else ptr1 = ptr2; ptr2 = ptr1->next; } return L; }
这篇关于浙大版《C语言程序设计(第4版)》题目集——习题11-8 单链表结点删除 (20 分)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15PingCAP 黄东旭参与 CCF 秀湖会议,共探开源教育未来
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升