数据结构16-17
上一篇 /
下一篇 2010-07-04 21:03:04
第十六课
本课主题:串操作应用举例
教学目的:掌握文本编辑的基本原理及方法
教学重点:简单文本编辑
教学难点:串的存储管理
授课内容:
一、复习串的堆分配存储表示
堆分
配存储表示
二、文本编辑基本原理
图一 |
文本编辑可以用于源程序的输入和修改(如图一),也可用于报刊和书籍的编辑排版以及办公室的公文书信的起草和润色(如图二)。
图二 |
可用于文本编辑的程序很多,功能强弱差别很大,但基本操作是一致
的:都包括串的查找,插入和删
除等基本操作。
对用户来讲,一个文本(文件)可以包括若干页,每页包括若干行,
每行包括若干文字。
对文本编辑程序来讲,可把整个文本看成一个长字符串,称文本串,
页是文本串的子串,行又是页的子串。为简化程序复杂程度,可简单地把文本分成若干行。
例:下面的一段源程序可以看成一个文本串,
main(){ float a,b,max; scanf("%f,%f",&a,&b); if (a>b)
max=a; else max=b; }; |
这个文本串在内存中的存储映像可为:
m | a | i | n | ( | ) | { | \n | | | f | l | o | a | t | | a | , | b | , |
m | a | x | ; | \n | | | s | c | a | n | f | ( | " | % | f | , | % | f | " |
, | & | a | , | & | b | ) | ; | \n | | | i | f | | a | > | b | | | m |
a | x | = | a | ; | \n | | | e | l | s | e | | | m | a | x | = | b | ; |
\n | } | \n | | | | | | | | | | | | | | | | | |
在编辑时,为指示当前编辑位置,程序中要设立页指针、行指针、字
符指针,分别指示当前页,当前行,当前字符。因此程序中要设立页表、行表便于查找。
三、简单行编辑程序例
源程序
回目录上一课下一课
第十七课
本课主题:实验三:栈的表示与实现及栈的应用
教学目的:掌握栈的存储表示方式和栈基本操作的实现方法
教学重点:栈的基本操作实现方法,栈的应用
教学难点:栈的存储表示
实验内容:
一、栈的实现
实现栈的顺序存储。
栈实现示例
二、栈的应用
1、利用栈实现数制转换 2、利用栈实现单行编辑
以上任选一题。
数制转换示例
单行编辑示例
这里是实现栈的头文件
回目录上一课下一课
收藏
举报
TAG: