指针与链表练习

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

指针与链表练习

1、围绕着山顶有10 个洞,一只兔子和一只狐狸各住一个洞,狐狸总想吃掉兔子。一天兔子对狐狸说,你想吃我有一个条件,第一次隔一个洞找我,第二次隔两个洞找我,以后依次类推,次数不限。若能找到我,你就可以饱餐一顿,在没找到我之前不能停止。狐狸一想只有10 个洞,寻找的次数又不限,哪有找不到的道理,就答应了条件。结果就是没找着。现请你编写一程序,假定狐狸找了1000 次,兔子躲在哪个洞里才安全。

2、输入一串大写字母,用这些字母建立一个指针链表,然后输出这个链表。链表中可能有一些重复的字母,将重复的多余字母从链表中删除,只留下第1个,输出链表。再将剩余链表中的字符按ASCII码升序重排,然后输出该链表。

例如:输入:DSDFRSSDFGDKAHHAUJDJG

输出:DSDFRSSDFGDKAHHAUJDJG

DSFRGKAHUJ

ADFGHJKRSU

3、约瑟夫的新问题

源程序文件名 jsf.pas

可执行文件名 jsf.exe

输入文件名 jsf.in

输出文件名 jsf.out

时间限制 1秒

问题描述

将1~M这M个自然数按由小到大的顺序沿顺时针方向围成一圈。以S为起点,先沿顺时针方向数到第N个数就出圈,然后再沿逆时针方向数到第K个数再出圈,再沿顺时针方向数到第N个数就出圈,然后再沿逆时针方向数到第K个数再出圈,……。这样按顺时针方向和逆时针方向不断出圈,直到全部数都出圈为止。

请打印先后出圈的数的序列。

输入格式

文件中共4行,每行为一个自然数,分别表示M,S,N,K。M不超过1000。

输出格式

仅1行,先后出圈的数的序列,每个数之间有1个空格。

样例输入(jsf.in)

8

1

3

2

样例输出(jsf.out)

3 1 5 2 7

4 6 8

(解释:先从1开始沿顺时针方向数到3,所以3先出圈;再从2开始沿逆时针方向数到1,所以1出圈;再从2开始沿顺时针方向数到5,所以5出圈,再从4开始沿逆时针方向数到2,所以2出圈,……)

DOCUMENT

源程序名 DOCUMENT.???(PAS,C,C++)

可执行文件名 DOCUMENT.EXE

输入文件名 DOCUMENT.IN

输出文件名 DOCUMENT.OUT

时间限制 2S

Andy很喜欢旧电脑。他喜欢任何和旧电脑有关的东西,并且他在自己现代的计算机里装着旧的操作系统。Andy也很喜欢为旧电脑写程序。最近他决定为他的文本模式的操作系统写一个文本编辑器。

他遇到的最困难任务是要处理文档索引。一个文档的索引是所有在文档中出现的单词按字典顺序的排列,并且附上这些单词出现的页码。Andy感觉他没有能力写文本编辑器的这个实现索引的组件,所以他请你帮忙。

一篇文档是一些段落的组合。每一个段落包含一行或者多行。段落之间以一个空行为区分。

首先这篇文档是有页码的——即分成了很多的页。每一页最多有n行。一页上是一行接着一行的,直到排满n行为止。以下是分页法则:

●如果一页的最后一行是一段的最后一行,则下面的空行被忽略。因此,没有一页

纸是由空行打头的。

●如果一页最后一行是一段的第一行,且这一段不止一行,那么这一行将被移到下

一页。

●如果一页最后一行是一段的倒数第二行,且这一段超过3行,那么这一行被移到

下一页。

●如果一页最后一行是一段的倒数第二行,且这一段只有2或3行,那么这一整段

被移到下一页。

运用这个分页法则,直到整个文档全部编号页码。

一个单词是一串英文字母。大小写不敏感。文档的索引包含文档中每一个单词和他们出现的位置(即页码)。一个单词对应的页码必须按升序排列。数字之间用逗号间隔。如果一个单词在连续的几页中出现,则对开始的页码和最后的页码被列出来,中间用减号(-)相隔,例如“3-5,7-10,12,13,15”。

输入

在输入文件的第一行是一个整数n(4<=n<=100)。输入文件的其他部分包含要被索引的文档。输入文件的大小不超过20,000字节。

如果一行什么都没有则视为空行。每行没有开始和结尾的空格。文档不包含连续的两个空行。文档的第一行不是空行。每一行不超过200个字符。

输出

输出所有出现在文档中的单词。单词必须按字典顺序列出,一个单词一行。在每一个单词之后是一个空格,然后是页码编号,编号的格式按照题目的要求。单词都用大写字母表示。

样例

DOCUMENT.IN

6

From thousands of teams competing in regional

contests held from September to December 2004

world-wide, seventy-five teams will advance to

the World Finals in Shanghai, April 3-7, 2005.

Awards, prizes, scholarships, and bragging rights

will be at stake for some of the world’s finest

university students of the computing science.

Join us for the challenge, camaraderie,

and the fun! Become the best of the best

of the best in ACM ICPC!

ACM ICPC is the best contest!

DOCUMENT.OUT

ACM 3

ADVANCE 1

AND 2,3

APRIL 1

AT 2

AWARDS 2

BE 2

BECOME 3

BEST 3

BRAGGING 2

CAMARADERIE 3

CHALLENGE 3

COMPETING 1

COMPUTING 2

CONTEST 3

CONTESTS 1

DECEMBER 1

FINALS 1

FINEST 2

FIVE 1

相关文档
最新文档