高等学校计算机实践教学用书 《数据结构》实验指导书 Turbo c程序开发环境简介 Turbo C是一个集程序编辑、编译、连接、调试为一体的C语言程序开 发软件,具有速度快、效率高、功能强等特点,使用非常方便,C语言程序 员可在 Turbo C环境下进行全屏幕编辑,利用窗口功能进行编译、连接、 试、运行、环境设置等工作。 1、要求的配置 Turbo c可以在 IBM PC在系列机上运行(包括XT、AT、PS/2、286 386等及其兼容机),要求20或更高版本的DOS以及至少448KB的RAM,监 视器应为80系列。 2、安装 urbo C系统有一安装程序 INISTALL,其运行过程如下: (1)将标签为 INSTALLATION DISK的软盘插入A盘驱动器 (2)键入A: (3)键入 INSTALL 这时只要遵循 INSTALL显示在屏幕上的指示进行操作即可。 INSTALL运 行以后,就可使用 Turbo C了。 3、使用 (1)、进入 Turbo c 如果使用 INSTALL安装程序安装好了 Turbo C,那么 Turbo C以存在 TC主目录下,可以用: CD/TC. 或 CD TC 进入该目录。然后在DS命令行上键入“TC”并按回车键。这时就进入 Turbo C,屏幕上将显示出如下的 Turbo C主菜单窗口 File Edit Run Complie Project Options Debug Break/Watch 如果不是在TC主目录内调用 Turbo c,而是在另一个目录下想使用 Turbo C,则应该指出目录路径,在DOS3。0以上版本中,可以在命令行 中使用包括目录路径的文件全名。如:用户希望将文件存于\USER目录后 则在进入USER目录后在命令行上输入CDTC,即可进入TC目录并调用 Turbo C,用户编辑的源文件将存在于USER下。 (2)、工作目录 工作目录指用户文件所在的目录。用户进入TC目录后,可以在这个目 录下再建立一个用户专用的子目录。用户可以在此目录下进入文件的编辑工 作,编译生成的目标文件也存放在此子目录中。这个工作目录可由用户自己 西南科技大学计算机科学学院
高等学校计算机实践教学用书 ★ 《数据结构》实验指导书 西南科技大学 计算机科学学院 1 Turbo C 程序开发环境简介 Turbo C 是一个集程序编辑、编译、连接、调试为一体的 C 语言程序开 发软件,具有速度快、效率高、功能强等特点,使用非常方便,C 语言程序 员可在 Turbo C 环境下进行全屏幕编辑,利用窗口功能进行编译、连接、调 试、运行、环境设置等工作。 1、 要求的配置 Turbo C 可以在 IBM PC 在系列机上运行(包括 XT、AT、PS/2、286、 386 等及其兼容机),要求 2.0 或更高版本的 DOS 以及至少 448KB 的 RAM,监 视器应为 80 系列。 2、安装 Turbo C 系统有一安装程序 INISTALL,其运行过程如下: (1) 将标签为 INSTALLATION DISK 的软盘插入 A 盘驱动器: (2) 键入 A: (3) 键入 INSTALL 这时只要遵循 INSTALL 显示在屏幕上的指示进行操作即可。INSTALL 运 行以后,就可使用 Turbo C 了。 3、使用 (1)、进入 Turbo C 如果使用 INSTALL 安装程序安装好了 Turbo C ,那么 Turbo C 以存在 TC 主目录下,可以用: CD/TC 或 CD TC 进入该目录。然后在 DOS 命令行上键入“TC”并按回车键。这时就进入 Turbo C,屏幕上将显示出如下的 Turbo C 主菜单窗口。 File Edit Run Complie Project Options Debug Break/Watch 如果不是在 TC 主目录内调用 Turbo C,而是在另一个目录下想使用 Turbo C,则应该指出目录路径,在 DOS 3。0 以上版本中,可以在命令行 中使用包括目录路径的文件全名。如:用户希望将文件存于\USER 目录后, 则在进入 USER 目录后在命令行上输入\CD\TC,即可进入 TC 目录并调用 Turbo C,用户编辑的源文件将存在于 USER 下。 (2)、工作目录 工作目录指用户文件所在的目录。用户进入 TC 目录后,可以在这个目 录下再建立一个用户专用的子目录。用户可以在此目录下进入文件的编辑工 作,编译生成的目标文件也存放在此子目录中。这个工作目录可由用户自己
高等学校计算机实践教学用书 《数据结构》实验指导书 建立,再由 Change dir命令来告诉 Turbo C你所选定的工作目录,方法见 前以述及,在进入 Turbo C后,屏幕上显示出一个 Turbo C主菜单窗口 这时可以用F10键和光标移动键来从主菜单中选择所需的功能。步骤如下: 先按下F10键,可看到屏幕上部的某一位置会出现亮块,如果亮块不在FIE 处,表示准备选择“FIE”类操作,即文件操作,也可不用F10键,而直 接按ALT键和”f”键(同时),使亮块位于“FILE”处。亮块移动到“FILE” 处后,按以下回车键,在“FILE”下方会出现一个子窗口如下图。 I File edit run compile project options debug break/watch Pick ALT-F3 New Write Directo dir 子窗口也有一个亮块,可以用“↑”、“↓”键,将此亮块移动到 Change dir处,或者直接按下“C”键,来选择 change dir操作;输入键“”后, 将会出现一目录提示框,提示用户输入所选择的目录名,用户输入后,再按 下“∠”键即可。 如:屏幕显示输入提示: newdirectory 用户输入“lusr C \telus 如果当前不存在此目录,则显示错误信息,可再次输入合法目录名 (3)、建立工作环境 即告诉TC包括文件和库文件在什么地方:输出文件存在于何出。可用 主菜单上“ option项”来进行。步骤如下 File edit run complie 在“ option”位置上以后,按回车键。此时在位置下面出现一个子窗口 西南科技大学计算机科学学院
高等学校计算机实践教学用书 ★ 《数据结构》实验指导书 西南科技大学 计算机科学学院 2 建立,再由 Change dir 命令来告诉 Turbo C 你所选定的工作目录,方法见 下述。 前以述及,在进入 Turbo C 后,屏幕上显示出一个 Turbo C 主菜单窗口。 这时可以用 F10 键和光标移动键来从主菜单中选择所需的功能。步骤如下: 先按下 F10 键,可看到屏幕上部的某一位置会出现亮块,如果亮块不在 FILE 处,表示准备选择“ FILE”类 操作,即文件操作,也可不用 F10 键,而直 接按 ALT 键和”f”键(同时),使亮块位于“FILE”处。亮块移动到“FILE” 处后,按以下回车键,在“FILE”下方会出现一个子窗口如下图。 File edit run compile project options debug break/watch Load F3 Pick ALT-F3 New Save F2 Write to Directory Change dir Os shell Quit ALT-X 子窗口也有一个亮块,可以用“↑”、“↓”键,将此亮块移动到 Change dir 处,或者直接按下“C”键,来选择 change dir 操作;输入键“↙”后, 将会出现一目录提示框,提示用户输入所选择的目录名,用户输入后,再按 下“↙”键即可。 如:屏幕显示输入提示: newdirectory C:\tc 用户输入“\usr”。 Newdirectory 如果当前不存在此目录,则显示错误信息,可再次输入合法目录名。 (3)、建立工作环境 即告诉 TC:包括文件和库文件在什么地方:输出文件存在于何出。可用 主菜单上“option 项”来进行。步骤如下: File edit run complie project option debug break/watch 在“option”位置上以后,按回车键。此时在位置下面出现一个子窗口, C:\tc\usr
高等学校计算机实践教学用书 《数据结构》实验指导书 如下: File edit run compile project options debug break/ watch Environment Arguments 用光标移动健将亮条移动到“ Directories”处,按回车键后,又将出现 个子窗口,如下图 Include directories: c: \Turbo C\include Licrary directories: c: \Turbo C\lib Outputdirectory Turbo C directory Pick file name Current pick file 将亮条移至“ include directories”出并按回车键,然后输入包括文件所在 的盘符和路径。如输入: c:\Turbo C\include c: \Turbo C\include \sys 表示:包含文件放在C盘上的\ Turbo C\ include子目录和\ Turbo C include\sys子目录中 包含文件的所在目录输入后,再将亮条移到“ library directories”处, 按回车键。输入库函数的盘符和目录名 c:\ Turbo C \lib 这就告诉 Turbo C:库函数的目录 (4)、编辑源文件 在主菜单状态下,将亮块移到左上角“FILE”处,按回车,选择“load load file name 用户可在输入要编辑的文件名,按回车即可。 如果记不清所编辑的源文件名,想看一下当前目录中有哪些源文件,可 以在子窗口出现上述“*,C”时直接按回车键。 Turbo C就回显示出当前目 录下的所有后缀为“,C”的文件名,利用光标键时将亮度条移到需要编辑的 西南科技大学计算机科学学院
高等学校计算机实践教学用书 ★ 《数据结构》实验指导书 西南科技大学 计算机科学学院 3 如下: File edit run compile project options debug break/watch Compiler Linker Environment Directores Arguments Save options Retrieve options 用光标移动健将亮条移动到“Directories”处,按回车键后,又将出现一 个子窗口,如下图: Include directories:c:\Turbo C\include Licrary directories:c:\Turbo C\lib Output directory : Turbo C directory: Pick file name : Current pick file: 将亮条移至“include directories”出并按回车键,然后输入包括文件所在 的盘符和路径。如输入: c:\Turbo C\include ; c;\Turbo C\include \sys 表示:包含文件放在 C 盘上的\Turbo C\include 子目录和\Turbo C \include \sys 子目录中。 包含文件的所在目录输入后,再将亮条移到“library directories”处, 按回车键。输入库函数的盘符和目录名 c:\Turbo C \lib 这就告诉 Turbo C:库函数的目录 (4)、编辑源文件 在主菜单状态下,将亮块移到左上角“FILE”处,按回车,选择“load” 出现: load file name 用户可在输入要编辑的文件名,按回车即可。 如果记不清所编辑的源文件名,想看一下当前目录中有哪些源文件,可 以在子窗口出现上述“*.C”时直接按回车键。Turbo C 就回显示出当前目 录下的所有后缀为“.C”的文件名,利用光标键时将亮度条移到需要编辑的 *.C
高等学校计算机实践教学用书 《数据结构》实验指导书 文件名处,按回车键,该输入文件内容即显示在屏幕上,供用户编辑、修改 如果用户用“load”输入的文件名是已存在的文件,则这时屏幕上将显 出文件内容,可供修改:否则屏幕上是一片空白,表示文件无内容(是新 文件),用户可以从键盘输入文件内容。在编辑过程中除用到个字符键外还 可以用到“Ins”键和“Del”键,“Ins”键是一个切换键,用来控制工作状 态是否处于“插入状态”。按下“Ins”键后,可以看到在屏幕编辑窗口的 上方状态行上有一个英文单词“ INSERT”,这时从键盘输入的字符(包括控 制字符,如“回车”)会插入到屏幕当前光标处,光标后的字符会自动顺序 后移。如果再按一下“Ins”键,则取消插入状态,状态行上的“ INSERT” 单词消失。此后键入的字符将覆盖(而不是插入)光标处的字符, Turbo C 设置的初始状态是“插入状态”,第一次按“Ins”键改成“覆盖状态”,再 按“Ins”键,则又改成“插入状态”,如此反复切换。“De”键是删除光标 所在的字符。“Ctr1”键和“Y”键同时按下可删除光标所在的一行,“Ctr1” 键盘和“N”键盘可用来插入一行。 编辑完成后,可从“File”菜单中选择“save”命令(即将亮条移至Save 处后,再按回车键)将文件存盘,也可直接按下F2键,将文件存盘 (5)、编译、连接 加工程序时,先编译源代码,生成目标文件(扩展名为。OBJ),然后将 目标文件进行连接生成可执行文件(扩展名为。EXE) 对单文件程序的编译、连接的方法是在将文件存盘后,按F10键,将亮 条移至 Compile处按回车键,也可直接按AltC即可产生一个子窗口如下图: File edit run compile project options debug break/watch Compile to OB C: a OBJ Make exe file C: a. EXE Line exe file Build all Primary c file Get info 表示编译后生成a.obj文件,连接后生成a,exe文件,源文件名设定 为a.c将亮条移至 Make exe file处(也可以直接按住F键),则T将对 文件进行编译、链结并生成运行文件。 若文件有错,则在屏幕底部的“ Message”窗口显示出错及警告信息 这时可进行修改。该完后在重复进行编译、链结。 另外,TC的最显著特点之一是能进行分别编译,可以把一个长的文件分 别编辑在多个文件中,分别编译。 Turbo c提供了一个工具,可直接将这些 西南科技大学计算机科学学院
高等学校计算机实践教学用书 ★ 《数据结构》实验指导书 西南科技大学 计算机科学学院 4 文件名处,按回车键,该输入文件内容即显示在屏幕上,供用户编辑、修改。 如果用户用“load”输入的文件名是已存在的文件,则这时屏幕上将显 示出文件内容,可供修改;否则屏幕上是一片空白,表示文件无内容(是新 文件),用户可以从键盘输入文件内容。在编辑过程中除用到个字符键外还 可以用到“Ins”键和“Del”键,“Ins”键是一个切换键,用来控制工作状 态是否处于“插入状态”。按下“ Ins”键后,可以看到在屏幕编辑窗口的 上方状态行上有一个英文单词“INSERT”,这时从键盘输入的字符(包括控 制字符,如“回车”)会插入到屏幕当前光标处,光标后的字符会自动顺序 后移。如果再按一下“Ins”键,则取消插入状态,状态行上的“INSERT” 单词消失。此后键入的字符将覆盖(而不是插入)光标处的字符,Turbo C 设置的初始状态是“插入状态”,第一次按“Ins”键改成“覆盖状态”,再 按“Ins”键,则又改成“插入状态”,如此反复切换。“Del”键是删除光标 所在的字符。“Ctrl”键和“Y”键同时按下可删除光标所在的一行,“Ctrl” 键盘和“N”键盘可用来插入一行。 编辑完成后,可从“File”菜单中选择“save”命令(即将亮条移至 Save 处后,再按回车键)将文件存盘,也可直接按下 F2 键,将文件存盘。 (5)、编译、连接 加工程序时,先编译源代码,生成目标文件(扩展名为。OBJ),然后将 目标文件进行连接生成可执行文件(扩展名为。EXE)。 对单文件程序的编译、连接的方法是在将文件存盘后,按 F10 键,将亮 条移至Compile处按回车键,也可直接按Alt-C即可产生一个子窗口如下图: File edit run compile project options debug break/watch 表示编译后生成 a.obj 文件,连接后生成 a.exe 文件,源文件名设定 为 a.c 将亮条移至 Make EXE File 处(也可以直接按住 F9 键),则 TC 将对 文件进行编译、链结并生成运行文件。 若文件有错,则在屏幕底部的“Message”窗口显示出错及警告信息。 这时可进行修改。该完后在重复进行编译、链结。 另外,TC 的最显著特点之一是能进行分别编译,可以把一个长的文件分 别编辑在多个文件中,分别编译。Turbo C 提供了一个工具,可直接将这些 Compile to OBJ C:a.OBJ Make EXE File C:a.EXE Line EXE File Build all Primary C file : Get info
高等学校计算机实践教学用书 《数据结构》实验指导书 文件编译连接后生成一个完整的运行程序,而不必由用户显示在分别编译连 接。这个工具就是 Pro ject菜单项,使用步骤如下: ①假设有两个文件组成一个程序,首先要生成两个源文件(如File1.c 和File2.c) ②构造 Project文件,在编辑状态下,编辑一个后缀名为PRJ的文件 (文件名可由用户选择,如: MYPROJECT.PRJ)此文件内容如下: file2 后缀.C可要可不要,而且 Filel、Fle2顺序无所谓。当 Filel.c,File2.c 不在一个目录中时,可在 project文件 MYPROJECT.PRJ中给出各自的路径, 例如文件内容可为: \Turbo C\USER\File A Turbo C\File2 ③在主菜单窗口中选择 project功能项,即将亮条移至 project处回车(也 可按AtP键得到),此时得到如下子窗口 File edit run compile pro ject options debug break/watch Project nam Break make on errors Clear project Remove messages 将亮条移到“ Project name”处,按回车键输入后,输入 project文件名 (如 MYPROG.PRJ)并回车。然后按F9键即产生相应的可执行文件。此 时运行文件名及为用户给出的 project文件名(如 MYPROG.EXE),运行时 可用下述的RUN命令,也可在操作命令状态下直接输入运行文件名(如 MYPROG ) ④停止编辑的方式。如果同时编辑的几个程序中有错,就须停止编译, 由用户进行修改。用户可以指定两种方式停止编译 A、用户希望同时编译的几个文件中同时出现一个错误时,就停止编译 可用如下方法:将 Project菜单中的亮条移到“ Break Make On”处,回车后 可出现一个子窗口,如下图: Fatal errors 西南科技大学计算机科学学院
高等学校计算机实践教学用书 ★ 《数据结构》实验指导书 西南科技大学 计算机科学学院 5 文件编译连接后生成一个完整的运行程序,而不必由用户显示在分别编译连 接。这个工具就是 Project 菜单项,使用步骤如下: ① 假设有两个文件组成一个程序,首先要生成两个源文件(如 File1.c 和 File2.c)。 ② 构造 Project 文件,在编辑状态下,编辑一个后缀名为 PRJ 的文件 (文件名可由用户选择,如:MYPROJECT.PRJ)此文件内容如下: file1 file2 后缀.C 可要可不要,而且 File1、File2 顺序无所谓。当 File1.c,File2.c 不在一个目录中时,可在 project 文件 MYPROJECT.PRJ 中给出各自的路径, 例如文件内容可为: \Turbo C\USER\File1 \ Turbo C\File2 ③ 在主菜单窗口中选择project功能项,即将亮条移至project处回车(也 可按 Alt+P 键得到),此时得到如下子窗口。 File edit run compile project options debug break/watch 将亮条移到“Project name”处,按回车键输入后,输入 project 文件名 (如 MYPROG.PRJ)并回车。然后按 F9 键即产生相应的可执行文件。此 时运行文件名及为用户给出的 project 文件名(如 MYPROG.EXE),运行时 可用下述的 RUN 命令,也可在操作命令状态下直接输入运行文件名(如 MYPROG)。 ④ 停止编辑的方式。如果同时编辑的几个程序中有错,就须停止编译, 由用户进行修改。用户可以指定两种方式停止编译。 A、用户希望同时编译的几个文件中同时出现一个错误时,就停止编译, 可用如下方法:将 Project 菜单中的亮条移到“Break Make On”处,回车后 可出现一个子窗口,如下图: Warnings Errors Fatal errors Link Project name Break make on Errors Auto depentlents off Clear project Remove messages
高等学校计算机实践教学用书 《数据结构》实验指导书 将亮条移至 Errors或 Warnings处,回车后,在 Break Make On右边及 出现此选项,如图: Break Make On Errors 这时,当编译的几个文件只要出现一个错误时,就立即停止编辑,亮条 停在出错处,指示用户进行修改 B、望所有文件的所有错误都找出以后,在修改错误,可用以下方法: 在 break make on”子窗口中,将亮条移至 fatal errors或link处,此 时 break make on右边出现的是 fatal errors或link。这样,在编译出现错 误后,才停止编译,用户这时在修改源文件 (6)、运行 编译链结完成一个文件后,可利用主菜单的“run”命令或直接使用ctrl +F9来运行程序。其实当用户认为自己的源程序不会有编译,链结错误时, 在源程序编译完成后,可以直接用“run”命令或直接按crtH+F9键,这时它 会一次完成编译链结到运行的全过程 程序运行后,仍回到tc屏,这时若想看运行结果,可以用“run菜单的 user screen”命令,也可直接按alt+F5键,转到用户屏。 File edit run compile project options debug break/watch 1 ctrl+F9 Program reset ctrl+f2 Go to cursor f4 Step over f8 alt+F5 看完后,按任意键回到TC屏 关于 Turbo C的更详细的信息,请参阅 Turbo C手册,或使用F1帮助 联机系统。 西南科技大学计算机科学学院
高等学校计算机实践教学用书 ★ 《数据结构》实验指导书 西南科技大学 计算机科学学院 6 将亮条移至 Errors 或 Warnings 处,回车后,在 Break Make On 右边及 出现此选项,如图: Break Make On Errors 这时,当编译的几个文件只要出现一个错误时,就立即停止编辑,亮条 停在出错处,指示用户进行修改。 B、望所有文件的所有错误都找出以后,在修改错误,可用以下方法: 在”break make on”子窗口中,将亮条移至 fatal errors 或 link 处,此 时:break make on 右边出现的是 fatal errors 或 link。这样,在编译出现错 误后,才停止编译,用户这时在修改源文件。 (6)、运行 编译链结完成一个文件后,可利用主菜单的“run”命令或直接使用 ctrl +F9 来运行程序。其实当用户认为自己的源程序不会有编译,链结错误时, 在源程序编译完成后,可以直接用“run”命令或直接按 crtl+F9 键,这时它 会一次完成编译链结到运行的全过程。 程序运行后,仍回到 tc 屏,这时若想看运行结果,可以用“run”菜单的 “user screen”命令,也可直接按 alt+F5 键,转到用户屏。 File edit run compile project options debug break/watch Run ctrl+F9 Program reset ctrl+f2 Go to cursor f4 Trace into f7 Step over f8 User screen alt+F5 看完后,按任意键回到 TC 屏。 关于 Turbo C 的更详细的信息,请参阅 Turbo C 手册,或使用 F1 帮助 联机系统
高等学校计算机实践教学用书 《数据结构》实验指导书 实验 线性表 实验目的 掌握用C语言上机调试线性表的基本方法 2、掌握线性表基本操作,插入、删除、查找,以及线性表合并等运算 在顺序存储结构和链接存储结构上的运算。 、实验内容 题目 线性表基本操作的实现 [问题描述] 当我们要在线性表的顺序存储结构上的第i个位置上插入一个元素时 必须先将线性表中第i个元素之后的所有元素依次后移一个位置,以便腾空 一个位置,再把新元素插入到该位置。若欲删除第i个元素时,也必须把第 i元素之后的所以元素前移一个位置 [基本要求] 要求生成线性表时,可以键盘输入读取元素,用顺序存储结构和链式存 储结构实现存储 [实现提示] 要实现基本操作可用已实现的基本操作,也可设计简单的算法实现 [算法实现] typedef null typedef int datatype #define maxsize 1024 typedef struct datatype data[ maxsize];/*定义线性表是向量,第一结点是 data[o]*/ int last /*插入函数米/ ert(L,x,i)/*将新结点x插入到顺序表1第i个位置 sequenlist *L /*1是 sequenlist类型的指针变量 i int j if ((=1).last==maxsize-1) printf(“ overflow”) return null: F f(i(*1).last+1) printf(“ 西南科技大学计算机科学学院
高等学校计算机实践教学用书 ★ 《数据结构》实验指导书 西南科技大学 计算机科学学院 7 实验一 线性表 一、实验目的 1、掌握用 C 语言上机调试线性表的基本方法。 2、掌握线性表基本操作,插入、删除、查找,以及线性表合并等运算 在顺序存储结构和链接存储结构上的运算。 二、实验内容 题目一 线性表基本操作的实现 [问题描述] 当我们要在线性表的顺序存储结构上的第 i 个位置上插入一个元素时, 必须先将线性表中第 i 个元素之后的所有元素依次后移一个位置,以便腾空 一个位置,再把新元素插入到该位置。若欲删除第 i 个元素时,也必须把第 i 元素之后的所以元素前移一个位置。 [基本要求] 要求生成线性表时,可以键盘输入读取元素,用顺序存储结构和链式存 储结构实现存储。 [实现提示] 要实现基本操作可用已实现的基本操作,也可设计简单的算法实现 [算法实现] typedef null 0; typedef int datatype; #define maxsize 1024; typedef struct { datatype data[maxsize]; /*定义线性表是向量,第一结点是 data[0]*/ int last; }sequenlist; /*插入函数*/ int insert(L,x,i) /*将新结点 x 插入到顺序表 l 第 i 个位置 sequenlist *L; /*l 是 sequenlist 类型的指针变量 int i; { int j; if ((*l).last==maxsize-1) { printif(“overflow”); return null;} else if((i(*l).last+1) { printf(“error”);
高等学校计算机实践教学用书 《数据结构》实验指导书 return null: 1 else for(j=(*1),1ast;j》=i-1;j-) (*1).data[j+1](*1).data[j;/*结点后移 (*1).data[i-1]=x; /*插入x (*1).1ast+1;} /*表长加一 return (1) /*删除运算 int delete(L,i)/*删除第i个结点 list料; if(i<1)|1(i)(米).1ast+1) print error return null; els i for (j=i; j<=(*L). last: j++) (*1). data[j-1=(*L). datalj] (L). last--;i (1) 体*生成线性表 id ceatlistO sequentlist’L printi(“请输入n个数据n”) for(i=0, i<n, i+) { printf("data[%d]=”,n) scanf("%od&(L)&datai) (L). last=n-1 printf("n 体*输出线性表 printout(L) querist FL 西南科技大学计算机科学学院
高等学校计算机实践教学用书 ★ 《数据结构》实验指导书 西南科技大学 计算机科学学院 8 return null;} else { for(j=(*l).last;j>=i-1;j--) (*l).data[j+1](*l).data[j]; /*结点后移 (*l).data[i-1]=x; /* 插入 x (*l).last+1; } /*表长加一 return (1); } /*删除运算 int delete(L,i)/*删除第 i 个结点 sequenlist *L; int i; { int j; if((i(*L).last+1) { printf(“error”); return null; } else { for (j=i;j<=(*L).last;j++) (*l).data[j-1]=(*L).data[j]; (*L).last--; } return (1); } /*生成线性表 void ceatlist() { sequentlist *L; int n,i,j; printf(“请输入 n 个数据\n”); scanf(“%d”,&n); for(i=0,i<n,i+); { printf(“data[%d]=”,i); scanf(“%d”&(*L).&data[i]); } (*L).last=n-1; printf(“”\n”); } /*输出线性表 printout(L) sequenlist *L;
高等学校计算机实践教学用书 《数据结构》实验指导书 for(i=0; I<(*L).last; i++) printf("%d", (L). data[)); *主程序开始 i sequenlist *L; Int 1.t: printf("i I 插入元素n printf("dD:删除元素n”); printf(" q C:退出元素n”) i do i do(cmd=getchar(; i while((cmdl=d )l(cmd =D')Kcmdl=q)l(cmd!=Q)Icm d!=i)川‖(cmd!=D) switch(cmd case 1’,Ii f(&i); insert(L, I) printout(L); case‘d f(&i) delete(L, i) i while(cmd!=q(cmd=D')) 题目二约瑟夫问题求解 [问题描述] 设有n个人围坐一圈,现从某个人开始报数,数到m的人出列,接着 从出列的下一个人开始重新报数,数到的M人又出列,如此下去,直到所 有的人出列为止,试设计确定他们的出列次序序列的程序。 [基本要求] 西南科技大学计算机科学学院
高等学校计算机实践教学用书 ★ 《数据结构》实验指导书 西南科技大学 计算机科学学院 9 { int i; for(i=0;i<(*L).last;i++) { printf(“data[%d]=”,i); printf(“%d”,(*L).data[i]); } } /*主程序开始 main() { sequenlist *L; char cmd’ int i,t; clscr(); printf(“i I : 插入元素\n”); printf(“d D : 删除元素\n”); printf(“q Q : 退出元素\n”); do { do { do{cmd=getchar(); }while((cmd!=’d’)||(cmd!=’D’)||(cmd!=’q’)||(cmd!=’Q’)||(cm d!=’i’)||(cmd!=I)); switch(cmd) { case ‘i’,’I’: scanf(&i); insert(L,i); printout(L); break; case ‘d’,’D’: scanf(&i); delete(L,i); printout(L); break; } }while((cmd!=’q’||(cmd!=’D’)); } 题目二 约瑟夫问题求解 [问题描述] 设有 n 个人围坐一圈,现从某个人开始报数,数到 m 的人出列,接着 从出列的下一个人开始重新报数,数到的 M 人又出列,如此下去,直到所 有的人出列为止,试设计确定他们的出列次序序列的程序。 [基本要求]
高等学校计算机实践教学用书 《数据结构》实验指导书 选择单向循环链表作为存储结构模拟整个过程,并依次输出出列的各人 的编号。 实现提示] 程序运行之后,首先要求用户指定初始报数的上限值,可以nnum=l p->nexts return head linklist *select(head, m) linklist *head i linklist *p, *q; 1,t; p=head; t=l P-q /°q为p的前驱指针 西南科技大学计算机科学学院
高等学校计算机实践教学用书 ★ 《数据结构》实验指导书 西南科技大学 计算机科学学院 10 选择单向循环链表作为存储结构模拟整个过程,并依次输出出列的各人 的编号。 [实现提示] 程序运行之后,首先要求用户指定初始报数的上限值,可以 nnum=1; p=s; for(i=2;inum=i; p->next=s; p=s; } p->next=head; return head; } linklist *select(head,m) linklist *head; int m; { linklist *p , *q; int i, t; p=head;t=1; p=q; /*q 为 p 的前驱指针