当前位置:首页 >> 其它课程 >>

sw上机作业


软件技术基础 上机作业
2011Fall 潘晔

实验一:顺序表(4学时)
ex1_1:
1)首先创建一个顺序表:从键盘读入一组整数(长度 小于等于11),按输入顺序放入顺序表,输入以-1 结束(注意-1不放到顺序表内);将创建好的顺序 表元素依次输出到屏幕上。 2)在已创建好的顺序表中插入一个元素:从键盘读入 需插入的元素值和

插入位置,调用插入函数完成插 入操作;然后将顺序表元素依次输出到屏幕上。 3)在已创建好的顺序表中删除一个元素:从键盘读入 欲删除的元素位置(序号),调用删除函数完成删 除操作;然后将顺序表元素依次输出到屏幕上。

4)删除顺序表中元素值为负数的所有元素,

然后将顺序表元素依次输出到屏幕上。
提示:相关常量和顺序表数据类型定义 #define MAXNUM 11 #define true 1 #define false 0 typedef struct { int data[MAXNUM]; int length; }list_type;

提示:创建顺序表函数 /*create a list:input data from keyboard,end by -1*/ void createlist(list_type *lp) { int i, elem; lp->length=0; printf("\n please input datas of the list\n"); for(i=0; i< MAXNUM; i++) { scanf(" %d", &elem); if(elem== -1) break; lp->data[i]=elem; lp->length++; } }

提示:遍历元素并依次输出函数 void printlist(list_type *lp) { int i; printf("\nThese %d records are:\n", lp->length); if(lp->length<=0) { printf("No data!\n"); return; } for(i=0; i<lp->length; i++) printf(" %d ", lp->data[i]); printf("\nlength of the list is:%d", lp->length); }

提示:插入函数,成功返回true,反之返回false。

int insertlist(list_type *lp, int i , int new_elem) { int j; if(lp->length>=MAXNUM) { printf("the list is full,can not insert."); return(false); } if(i<1 || i>lp->length+1) { printf("\n%d is invalid value",i); return(false); } for(j=lp->length-1; j>=i-1; j--) lp->data[j+1]=lp->data[j]; lp->data[i-1]=new_elem; lp->length++; return(true); }

提示:删除函数,成功返回true,反之返回false。 int deletelist(list_type *lp, int i) { int j; if(i<1 || i>lp->length) { printf("elem not exist"); return(false); } for(j=i; j<lp->length; j++) lp->data[j-1]=lp->data[j]; lp->length--; return(true); } 删除所有负数的函数(自己编写) void delete_negative(list_type *l) { }

提示:主函数,按要求调用已编写好的各函数
void main( ) { list_type list; int i, data; createlist(&list); printlist(&list); printf("\ninsert:Enter i and data :\n"); scanf("%d,%d", &i, &data); insertlist(&list, i, data); printf("\nlist after insert:\n"); printlist(&list); printf("\ndelete:Enter i:\n"); scanf("%d", &i); deletelist(&list, i); printf("\nlist after delete:\n"); printlist(&list); /* delete_negative(&list); printf("\nlist after delete all negative:\n"); printlist(&list);*/ }

实验一:顺序表(续)
ex1_2: p74第9题(用顺序表实现) 注意该题中没有提供插入元素的具体位置,要 根据元素值大小寻找合适的位置。

实验二:链表(4学时)
ex2_1:
1)首先创建一个单链表:从键盘读入五个整数,按输 入顺序形成单链表。将创建好的链表元素依次输出 到屏幕上。 2)在已创建好的链表中插入一个元素:从键盘读入元 素值和插入位置,调用插入函数完成插入操作。然 后将链表元素依次输出到屏幕上。 3)在已创建好的链表中删除一个元素:从键盘读入欲 删除的元素位置(序号),调用删除函数完成删除 操作。然后将链表元素依次输出到屏幕上。

实验二:链表(续)
ex2_2:
1)创建一个单链表,其数据元素为整数,从键盘输 入,输入0结束(注意0不放到链表内); 2)从键盘任意输入一个整数,在单链表中查询该数, 如果单链表中已经存在这个数,就调用删除函数,删 除该元素所在结点,并将单链表在删除前后的数据元 素依次输出到屏幕上; 如果单链表中不存在这个数,就调用插入函数,将这 个数插入到单链表尾,并将单链表在插入前后的数据 元素依次输出到屏幕上。

实验二:链表(续)
ex2_3: p74第9题(用链表实现)

实验三:栈和队列(4学时)
ex3_1:链栈 1)链栈结点类型定义为: typedef struct node { int data; struct node *next; }node_type; 2)编写进栈函数push 3)编写出栈函数pop 4)编写main函数,首先建立一空链栈; 调用进栈函数,将从键盘输入的数据元素逐个 进栈,输入0结束;显示进栈后的数据元素; 调用两次出栈函数,显示出栈后的数据元素。

实验三:栈和队列(续)
ex3_2:循环队列 1)顺序循环队列类型定义为: #define N 20 typedef struct { int data[N]; int front, rear; }queue_type; 2)编写循环队列出队函数dequeue 3)编写循环队列入队函数enqueue 4)编写函数:void aa(queue_type *q); 调用出对函数把队列q中的元素一一出对列,如果是负数直 接抛弃;如果是正数,则调用入队函数,插入到q的队尾。 5)编写main函数,首先建立一个队列,其中的数据元素为: {2, 3, -4, 6, -5, 8, -9, 7, -10, 20};然后调用aa函数,并将aa函 数调用前后队列的数据元素分别输出到屏幕上。

实验三:栈和队列(续)
? ex3_3: p74第12题 ? ex3_4: p74第13题

实验四:二叉树(4学时)
ex4_1:
1)二叉树结点类型定义为: typedef struct bnode { int data; struct bnode *lc, *rc; }bnode_type; 2)编写中序遍历函数; 3)编写后序遍历函数; 4)编写先序遍历函数; 5)编写create函数建立二叉排序树; 6)编写main( )函数,先调用create函数,建立一颗二叉排 序树;然后分别调用中序、后序、先序遍历函数,将 二叉树的先序、中序和后序遍历序列输出到屏幕上。

实验四:二叉树(续)
ex4_2:设以先序输入字母,编写程序建立如下二叉树:

ABC_ _ DEF _ _ G _ _ _ H _ I _ JK _ _ L _ _ A

B C
_ D _ E _ _

H I _ K J L

F _

G __ _

_

_ _ _

每一个空格“_”表示一个空指针

实验五:查找和排序(4学时)
ex5_1:查找
设有序序列的数据元素为: (3,10,13,17,40,43,50,70) 1)编写顺序查找函数 2)编写二分查找函数 3)在主程序中输入关键字(43和5),分别调用两种查找 函数,输出结果。

ex5_2:排序
1)编写简单选择法函数 2)编写直接插入法函数 3)编写冒泡法排序函数 4)在主程序中输入一组数据元素(513,87,512,61, 908,170,897,275,653,462),分别调用三种排序 函数,输出每趟排序结果。

上机实验报告格式要求
(学生姓名)xxx (学号)xxxxxxxxxx 上机实验一(或二、三、四、五) (程序名称)ex1_1
xxxxxxxxxxx xxxxxxxxxxx xxxxxxxxxxx

典型测试数据(输入):xxxxx 应输出(上机前自己分析的结果):xxxxxxx 上机时遇到的问题:① xxxxx 解决办法:xxxxxxx ② xxxxxx 解决办法:xxxxxxx 实际运行结果:xxxxxx
xxxxxx xxxxxx

个人体会:xxxxxxx


相关文章:
SolidWorks上机练习题01
SolidWorks上机练习题01_从业资格考试_资格考试/认证_教育专区 暂无评价|0人阅读|0次下载|举报文档SolidWorks上机练习题01_从业资格考试_资格考试/认证_教育专区。...
上机作业答案
上机作业答案_学习总结_总结/汇报_实用文档。上机作业答案 一答案:1filetype 作用...TOWZTZFFVN0I4cFh3PT0=$9A4hF_YAuvQ5obgVA qNKPCYcEjKensW4IQMovwHtwk...
四川师范大学上机作业
四川师范大学上机作业_教育学_高等教育_教育专区。四川师范大学信息检索课实验题目...YSAY3b3vk&sig=AOD64_33xQNpkoO2_UWa2bRU8SwPcILzfw&client=ca-pub...
上机作业
上机作业_管理学_高等教育_教育专区。四川师范大学信息检索课实验题目 1、举例说明...能,不能,http://ss.zhizhen.com/s?sw=%E7%AF%AE%E7%90%83&x= 3、...
2014190565上机作业
2014190565上机作业_教育学_高等教育_教育专区。信息检索上机作业四川...1EA1965E2C1F94&fenlei=061001050506&sw=%E3%80%8A%E6%B6%88%E8%B4%B9%E...
我的上机作业
我的上机作业_计算机软件及应用_IT/计算机_专业资料。信息检索四川师范大学信息检索...sw=%E5%9B%BD%E5%AF%8C%E8%AE%BA&type =all 书生之家在下载专用的阅读...
SolidWorks上机指导练习图册
SolidWorks上机指导练习图册_机械/仪表_工程科技_专业资料 暂无评价|0人阅读|0次下载|举报文档 SolidWorks上机指导练习图册_机械/仪表_工程科技_专业资料。3D 工程...
solidworks练习题目
13页 免费 solidworks上机练习 8页 免费 清华大学工科学生solidw... 18页 免费 solidworks练习--轴 暂无评价 8页 免费喜欢此文档的还喜欢 ...
交换机上机作业1
交换机上机作业1_IT认证_资格考试/认证_教育专区。考证操作要求: 1、 将八台交换机命名为 Sw1、Sw2、Sw3、Sw4、 Sw5、Sw6、Sw7、Sw8;路由 器命名为 R1、R2...
上机实验作业2014140209
上机实验作业2014140209_互联网_IT/计算机_专业资料。四川师范大学信息检索课实验题目...sw=%E7%90%83%E7%B1%BB%E8%BF%90%E5%8A%A8%E2%80%94%E2%80%94%E6%8...
更多相关标签:
计算方法上机作业 | 信息检索上机作业 | matlab上机作业 | 传热学上机作业 | c语言上机作业及答案 | 数值分析上机作业 | 文献检索上机作业 | 西电微机原理上机作业 |