《数据结构实验与实训教程(第3版)》课件.doc

上传人:gs****r 文档编号:1481418 上传时间:2019-03-03 格式:DOC 页数:97 大小:706KB
下载 相关 举报
《数据结构实验与实训教程(第3版)》课件.doc_第1页
第1页 / 共97页
《数据结构实验与实训教程(第3版)》课件.doc_第2页
第2页 / 共97页
《数据结构实验与实训教程(第3版)》课件.doc_第3页
第3页 / 共97页
《数据结构实验与实训教程(第3版)》课件.doc_第4页
第4页 / 共97页
《数据结构实验与实训教程(第3版)》课件.doc_第5页
第5页 / 共97页
点击查看更多>>
资源描述

1、i目 录第一部分 预备知识 .1预备知识 .1预备知识实验 .2第二部分 基础实验 .4实验 1 线性表的基本操作 .4实验 2 链表的基本操作 .9实验 3 栈的基本操作 .15实验 4 队列的基本操作 .22实验 5 数组的基本操作 .32实验 6 字符串的基本操作 .36实验 7 二叉树的基本操作 .41实验 8 树的遍历和哈夫曼树 .46实验 9 图的基本操作 .53实验 10 排 序 .59实验 11 查 找 .64第三部分 课程设计实验 .69实验 1 航空客运订票系统 .69实验 2 汉诺塔游戏程序 .75实验 3 全屏幕编辑程序设计 .79实验 4 旅游路线安排模拟系统 .90

2、实验 6 最小生成树 kruskal 算法 .931第一部分 预备知识预备知识例 11 #include int sumabc(int a, int b, int c) /* 求三个整数之和*/ int s;a=b+c;s=a+b+c;return s; void displayLine(void) printf(”-n“);void main( ) int x,y, z ,sabc;x=y=z=8;display(); /* 画一条线 */printf(“n sum=%d”,sumabc(x,y,z); /* 在输出语句中直接调用函数 sumabc( ) */printf(“n %6d%6d

3、%6d”,x,y,z);display();/* 画一条线 */x=2; y=4; z=6;sabc =sumabc(x, y, z); /* 在赋值语句中调用函数 sumabc( ) */printf(“n “ sum=%d”, sabc);printf(“n %6d%6d%6d”,x,y,z); display();/* 画一条线 */ 例 1.2 int sumabc(int *a, int b, int c)int s;*a=b+c;s=*a+b+c;2return s; 预备知识实验int main() /在 main 函数中调用上述声明的函数int n; /记录个数STUDENT

4、stuMAXSIZE;/ 顺序存储结构,方法一 静态一维数组。/*顺序存储结构,方法二 动态一维数组,用 malloc 函数分配如下:STUDENT *stu;stu=( STUDENT *) malloc(sizeof(STUDENT)* MAXSIZE);/ 内存空间的分配注意:分配空间可用 malloc()函数, 释放空间用 free()函数,如 free(stu);*/int index;printf(“n 请输入学生记录个数 n=“); scanf(%d”,InputStu(stu, n); / 预先处理输入, 建表while(1) / 永真循环,重复显示菜单, 直至退出 print

5、f(“n*学生信息管理主菜单*n“);printf(“t1.显示学生信息n“); printf(“t2.查找学生信息n“); printf(“t3.修改学生信息n“); printf(“t4.添加学生信息n“); printf(“t5.退出nn“); printf(“tt 请选择(15): “); scanf(“%d“, printf(“n*n“);switch(index) case 1: OutputStu(stu,n); break;case 2: SearchStu(stu,n); break;case 3: UpdateStu (stu,n); break;case 4: Appen

6、dStu (stu, break;case 5: return 0; default: printf(“n 输入有误,请重新输入! n“);/switch3/while(1)/main4第二部分 基础实验实验 1 线性表的基本操作四、参考程序程序 1:题 1 线性表基本操作函数#include#include#includestruct LinearList *定义线性表结构*/int *list; /* 存线性表元素 */int size; /* 存线性表长度 */int MaxSize; /* 存 list 数组元素个数 */;typedef struct LinearList LIST;

7、void InitList( LIST *L, int ms )/* 初始化线性表 */if( (L-list = 1 ) = NULL ) printf( “内存申请错误!n“ );exit( 1 );2 L-MaxSize = ms;int InsertList( LIST *L, int item, int rc )/* item:记录值 rc:插入位置 */int i;if( 3 ) /* 线性表已满 */return -1;if( rc L-size */5rc = 0;if( 4 )rc = L-size;for( i = L-size - 1; i = rc; i- )/* 将线

8、性表元素后移 */5 L-listrc = item;L-size +;return 0; void OutputList( LIST *L ) /* 输出线性表元素 */int i;for( i = 0; 6 i+ )printf( “%d “, L-listi );printf( “n“ );int FindList( LIST *L, int item ) /* 返回 =0 为元素位置 -1 没找到 */int i;for( i = 0; i size; i+ )if( 7 ) /* 找到相同的元素,返回位置 */return i;return -1; /* 没找到 */int Dele

9、teList1( LIST *L, int item )/* 删除指定元素值的线性表记录,返回=0:删除成功 */int i, n;for( i = 0; i size; i+ )if( item = L-listi )/* 找到相同的元素 */break;if( i size ) for( n = i; n size - 1; n+ )L-listn = L-listn+1;L-size -;return i;6return -1;int DeleteList2( LIST L, int rc ) /* 删除指定位置的线性表记录 */8 /*编写删除指定位置的线性表记录子程序*/程序 2:题

10、 2 void main()LIST LL;int i, r;printf( “list addr=%ptsize=%dtMaxSize=%dn“, LL.list, LL.size, LL.MaxSize );InitList( printf( “list addr=%ptsize=%dtMaxSize=%dn“, LL.list, LL.size, LL.MaxSize );while( 1 )printf( “请输入元素值,输入 0 结束插入操作:“ );fflush( stdin );/* 清空标准输入缓冲区 */scanf( “%d“, if( 1 )break;printf( “请

11、输入插入位置:“ );scanf( “%d“, InsertList( 2 );printf( “线性表为: “ );3 while( 1 )printf( “请输入查找元素值,输入 0 结束查找操作:“ );fflush( stdin );/* 清空标准输入缓冲区 */scanf( “%d“, if( i = 0 )break;r = 4 if( r void del( int *A, int *n, int x, int y )int i, j;for( i = j = 0; i y | Ai #includetypedef struct list int data;struct list

12、 *next;LIST;void InitList( LIST *p ) /* 初始化链表 */1 /*编写初始化链表子程序 */void InsertList1( LIST *p, int item, int rc )/* 向链表指定位置rc插入元素item */int i;LIST *u, *q, *r; /* u:新结点 q:插入点前驱 r:插入点后继 */u = ( LIST * )malloc( sizeof(LIST) );u-data = item;for( i = 0, r = *p ; 2 ; i+ ) q = r;r = r-next;if( 3 ) /* 插入首结点或 p 为空指针 */*p = u;else4 u-next = r;void InsertList2( LIST *p, int item )/* 向有序链表p插入键值为item的结点 */

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 企业管理资料库 > 生产营运

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。