2-2 求链式线性表的倒数第K项分数 5
作者 DS课程组
单位 浙江大学
给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字。
输入格式:输入首先给出一个正整数K,随后是若干非负整数,最后以一个负整数表示结尾(该负数不算在序列内,不要处理)。
输出格式:输出倒数第K个位置上的数据。如果这个位置不存在,输出错误信息NULL。
输入样例:14 1 2 3 4 5 6 7 8 9 0 -1
输出样例:17
第三次遇到这个题了
答案123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263#include <iostream>using namespace std;// 定义链表结构typedef struct LNode { int data; struct LNode *next;} LNode, *LinkList;// 初始化链表void ...
2-1 一元多项式求导分数 5
作者 DS课程组
单位 浙江大学
设计函数求一元多项式的导数。
输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。注意:零多项式用 0 0 表示。
输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。
输入样例:13 4 -5 2 6 1 -2 0
输出样例:112 3 -10 1 6 0
答案12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273#include <iostream>using namespace std;// 定义链表结构typedef struct LNode { int coeff; int exp; struct LNode *next;} LNode, * ...
1-10 单链表分段逆转分数 6
作者 陈越
单位 浙江大学
给定一个带头结点的单链表和一个整数K,要求你将链表中的每K个结点做一次逆转。例如给定单链表 1→2→3→4→5→6 和 K=3,你需要将链表改造成 3→2→1→6→5→4;如果 K=4,则应该得到 4→3→2→1→5→6。
函数接口定义:1void K_Reverse( List L, int K );
其中List结构定义如下:
123456typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */};typedef PtrToNode List; /* 定义单链表类型 */
L是给定的带头结点的单链表,K是每段的长度。函数K_Reverse应将L中的结点按要求分段逆转。
裁判测试程序样例:123456789101112131415161718192021222324252627282930#include <stdio. ...
智能问答系统全解析:从核心架构到落地实践的技术指南一、安装docker环境 6.Docker Desktop 安装使用教程-CSDN博客
参考上述文档安装Docker Desktop和wsl2
以下为转载内容 ,部分有变动
1.前言作为开发人员,在日常开发中,我们需要在本地去启动一些服务,如:redis、MySQL等,就需要去下载这些在本地去启动,操作较为繁琐。此时,我们可以使用Docker Desktop,来搭建我们需要的服务,直接在容器中去启动即可。
2.下载 Docker Desktopdocker官网:https://www.docker.com/
3.安装 Docker Desktop3.1.配置 Docker Desktop 环境
因为docker desktop 是可以部署在windows 上来运行docker的应用服务的,其基于windows 的 Hyper-V服务和WSL2内核的Windows上创建一个子系统(linux),从而实现其在windows上运行docker。所以电脑上需要开启Hyper-V服务,和安装WSL2。
开启 Hyper-V 服务:控制 ...
1-9 共享后缀的链表分数 6
作者 陈越
单位 浙江大学
有一种存储英文单词的方法,是把单词的所有字母串在一个单链表上。为了节省一点空间,如果有两个单词有同样的后缀,就让它们共享这个后缀。下图给出了单词“loading”和“being”的存储形式。本题要求你找出两个链表的公共后缀。
函数接口定义:1PtrToNode Suffix( List L1, List L2 );
其中List结构定义如下:
123456typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */};typedef PtrToNode List; /* 定义单链表类型 */
L1和L2都是给定的带头结点的单链表。函数Suffix应返回L1和L2的公共后缀的起点位置。
裁判测试程序样例:1234567891011121314151617181920212223242526272829303132#include &l ...
1-8 求链表的倒数第m个元素分数 5
作者 DS课程组
单位 浙江大学
请设计时间和空间上都尽可能高效的算法,在不改变链表的前提下,求链式存储的线性表的倒数第m(>0)个元素。
函数接口定义:1ElementType Find( List L, int m );
其中List结构定义如下:
123456typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */};typedef PtrToNode List; /* 定义单链表类型 */
L是给定的带头结点的单链表;函数Find要将L的倒数第m个元素返回,并不改变原链表。如果这样的元素不存在,则返回一个错误标志ERROR。
裁判测试程序样例:123456789101112131415161718192021222324252627282930#include <stdio.h>#include <stdlib.h&g ...
1-7 删除排序链表中的重复元素分数 7
作者 李廷元
单位 中国民用航空飞行学院
###题目描述:删除排序链表中的重复元素编写一个函数,对于一个给定的排序链表,删除所有重复的元素每个元素只留下一个。
给出1->1->2->NULL,返回 1->2->NULL
给出1->1->2->3->3->NULL,返回 1->2->3->NULL
###单链表结点类型定义:
123456typedef int ElemType; //元素的数据类型typedef struct LNode { ElemType data; //结点的数据域 struct LNode *next; //指向后继结点} LinkNode; //单链表结点类型
函数接口定义:12345678/*尾插法建立单链表,细节不表*/LinkNode* CreateListR(ElemType a[], int n);/*输出线性表,细节不表*/void DispLis ...
1-6 两个有序链表序列的合并分数 5
作者 DS课程组
单位 浙江大学
本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。
函数接口定义:1List Merge( List L1, List L2 );
其中List结构定义如下:
123456typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */};typedef PtrToNode List; /* 定义单链表类型 */
L1和L2是给定的带头结点的单链表,其结点存储的数据是递增有序的;函数Merge要将L1和L2合并为一个非递减的整数序列。应直接使用原序列中的结点,返回归并后的带头结点的链表头指针。
裁判测试程序样例:1234567891011121314151617181920212223242526272829#include <stdio.h>#include <stdlib.h ...
1-5 头插法创建单链表(C)分数 7
作者 李廷元
单位 中国民用航空飞行学院
本题要求实现两个函数,输入n个数据,采用头插法创建单链表并打印。例如:如果输入4,再输入3 7 9 5,则应打印输出5 9 7 3。
链表结点结构定义:1234struct Node { //链表结点 int data; //数据 struct Node* link; //指向下一个结点的指针};
函数接口定义:123/* 头插法建立单链表:返回单链表的头指针 */struct Node* buildLinkedList(int* arr, int n); /* 头插法建立单链表 */void printLinkedList(struct Node* head); /* 打印链表 */
其中arr和n是用户传入的参数,n的值不超过100000。head为单链表的头指针。
裁判测试程序样例:1234567891011121314151617181920212223242526272829303132333435#include & ...
1-4 删除链表中的元素分数 7
作者 李廷元
单位 中国民用航空飞行学院
本题要求删除链表中等于给定值val的所有节点。链表ListNode的定义已经给出。要求给出函数removeElements的实现。
函数接口定义:1234567891011/** head为链表头指针;val为需要删除的值。* 函数返回值为删除val后的链表的头指针。*/struct ListNode* removeElements(struct ListNode* head, int val);/* 创建链表,细节不表 */struct ListNode* buildList();/* 打印链表,细节不表 */void printList(struct ListNode* head);
裁判测试程序样例:12345678910111213141516171819202122232425262728293031323334353637#include<stdio.h>#include<stdlib.h>#include<string.h>/** * Definition o ...


