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

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


相关文章:
交换机上机作业1
交换机上机作业1_IT认证_资格考试/认证_教育专区。考证操作要求: 1、 将八台交换机命名为 Sw1、Sw2、Sw3、Sw4、 Sw5、Sw6、Sw7、Sw8;路由 器命名为 R1、R2...
上机作业
上机作业_管理学_高等教育_教育专区。四川师范大学信息检索课实验题目 1、举例说明...能,不能,http://ss.zhizhen.com/s?sw=%E7%AF%AE%E7%90%83&x= 3、结合...
交换机上机作业3
交换机上机作业3 考证考证隐藏>> 操作要求: 1、 将八台交换机命名为 Sw1、Sw2、Sw3、Sw4、 Sw5、Sw6、Sw7、Sw8;路由 器命名为 R1、R2 2、 在 Sw1、Sw2...
数值实验-上机作业_图文
数值实验-上机作业_物理_自然科学_专业资料。数值实验课程上机作业 研开发 x 班 xxx 201x212xxx 一、 题目要求 某油藏采用正五点井网注水开采。取其中两个相邻...
生物信息上机作业
生物信息上机作业_理学_高等教育_教育专区。生物信息学上机作业 一 生物信息数据...Ryan KA, Robinson SW, Gottlieb SS, Kardia SL, Shuldiner AR and Liggett ...
ARM嵌入式上机作业
文华专用ARM与嵌入式上机实验题目文华专用ARM与嵌入式上机实验题目隐藏>> 第一次...(30); } } 第三次作业 1.修改例程序,使得分别按下 SW18 和 SW19 时...
上机实验作业2014140209
上机实验作业2014140209_互联网_IT/计算机_专业资料。四川师范大学信息检索课实验题目...sw=%E7%90%83%E7%B1%BB%E8%BF%90%E5%8A%A8%E2%80%94%E2%80%94%E...
运营管理上机作业
《运营管理》上机作业 ——使用软件: 《运营管理专家》 班级: 学号: 姓名: 1、能力规划→决策分析 位于北京副中心的望京家园已经整体封顶, 底商招租已经全面启动...
SW通风口操作_图文
SW通风口操作_计算机软件及应用_IT/计算机_专业资料。solidworks 教程资料: ...sw上机作业 19页 免费 sw上机作业 暂无评价 19页 免费 sw作业用图 17页 ...
网络设备上机考试题
网络设备上机考试题_IT认证_资格考试/认证_教育专区。网络设备上机试题 考试所用...配置交换机: a) 配置交换机的主机名 :SW1 ; SW2 b) 配置交换机的特权级...
更多相关标签: