《数据结构》(2)部分

《数据结构》(2)部分

ID:37971480

大小:41.50 KB

页数:6页

时间:2019-06-04

《数据结构》(2)部分_第1页
《数据结构》(2)部分_第2页
《数据结构》(2)部分_第3页
《数据结构》(2)部分_第4页
《数据结构》(2)部分_第5页
资源描述:

《《数据结构》(2)部分》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《数据结构》(2)部分六、串及其应用简单行编辑程序问题描述:文本编辑程序是利用计算机进行文字加工的基本软件工具,实现对文本文件的插入、删除等修改操作。限制这些操作以行为单位进行的编辑程序称为行编辑程序。被编辑的文本文件可能很大,全部读入编辑程序的数据空间(内存)的作法既不经济,也不总能实现。一种解决方法是逐段地编辑。任何时刻只把待编辑文件的一段放在内存,称为活区。试按照这种方法实现一个简单的行编辑程序。设文件每行不超过320个字符,很少超过80个字符。基本要求:实现以下4条基本编辑命令:(1)行插入。格式:i〈行号〉〈回车〉〈文本

2、〉。〈回车〉后将〈文本〉插入活区中第〈行号〉行之后。(2)行删除。格式:d〈行号1〉[〈空格〉〈行号2〉]〈回车〉。删除活区中第〈行号1〉行(到第〈行号2〉行)。例如:“d10↙”和“d1014↙”。(3)活区切换。格式:n〈回车〉。将活区写入输出文件,并从输入文件中读入下一段,作为新的活区。(4)活区显示。格式:p〈回车〉。逐页地(每页20行)显示活区内容,每显示一页之后请用户决定是否继续显示以后各页(如果存在)。印出的每一行要前置行号和一个空格符,行号固定占4位,增量为1。各条命令中的行号均须在活区中各行行号范围之内,只有插入

3、命令的行号可以等于活区第一行行号减1,表示插入当前屏幕中第一行之前,否则命令参数非法。测试数据:自行设定,注意测试将活区删空等特殊情况。实现提示:(1)设活区的大小用行数ActiveMaxLen(可设为100)来描述。考虑到文本文件行长通常为正态分布,且峰值在60到70之间,用320×ActiveMaxLen大小的字符数组实现存储将造成大量浪费。可以以标准行块为单位为各行分配存储,每个标准行块可含81个字符。这些行块可以组成一个数组,也可以利用动态链表连接起来。一行文字可能占多个行块。行尾可用一个特殊的ASCII字符(如(012)

4、8)标识。此外,还应记住活区起始行号。行插入将引起随后各行行号的顺序下推。6(2)初始化函数包括:请用户提供输入文件名(空串表示无输入文件)和输出文件名,两者不能相同。然后尽可能多地从输入文件中读入各行,但不超过ActiveMaxLen-x。x的值可以自定,例如20。(3)在执行行插入命令的过程中,每接收到一行时都要检查活区大小是否已达ActiveMaxLen.如果是,则为了在插入这一行之后仍保持活区大小不超过ActiveMaxLen,应将插入点之前的活区部分中第一行输出到输出文件中;若插入点为第一行之前,则只得将新插入的这一行输

5、出。(4)若输入文件尚未读完,活区切换命令可将原活区中最后几行留在活区顶部,以保持阅读连续性;否则,它意味着结束编辑或开始编辑另一个文件。(5)可令前三条命令执行后自动调用活区显示。七、图及其应用1.最小生成树问题问题描述:若要在n个城市之间建设通信网络,只需要架设n-1条线路即可。如何以最低的经济代价建设这个通信网,是一个网的最小生成树问题。基本要求:(1)利用普里姆或克鲁期卡尔算法求网的最小生成树。(2)以文本形式输出生成树中各条边以及他们的权值。测试数据:按教材中的例子,自己相应设计。实现提示:通信线路一旦建立,必然是双向的

6、。因此,构造最小生成树的网一定是无向网。设图的顶点数不超过30个,并为简单起见,网中边的权值设成小于100的整数,可利用C语言提供的随机数函数产生。图的存储结构的选取应和所作操作相适应。为了便于选择权值最小的边,此题的存储结构既不选用邻接矩阵的数组表示法,也不选用邻接表,而是以存储边(带权)的数组表示图。2.图遍历的演示问题描述:很多涉及图上操作的算法都是以图的遍历操作为基础的。试写一个程序,演示在连通的无向图上访问全部结点的操作。基本要求:以邻接表为存储结构,实现连通无向图的深度优先和广度优先遍历。以用户指定的结点为起点,分别输

7、出每种遍历下的结点访问序列和相应生成树的边集。测试数据:按教科书上的例子改编。6实现提示:设图的结点不超过30个,每个结点用一个编号表示(如果一个图有n个结点,则它们的编号分别为1,2,…,n)。通过输入图的全部边输入一个图,每个边为一个数对,可以对边的输入顺序作出某种限制。注意,生成树的边是有向边,端点顺序不能颠倒。选作内容:(1)借助于栈类型(自己定义和实现),用非递归算法实现深度优先遍历。(2)以邻接表为存储结构,建立深度优先生成树和广度优先生成树,再按凹入表或树形打印生成树。(3)因图的路径遍历要比结点编历具有更为广泛的应

8、用。再写一个路径遍历算法,求出从某给定点到另一点且中途不过某特定点的所有简单路径及其里程。#include        /*For_MAX_PATHdefinition*/#include#include

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。