软件技术基础上机实验4(数据结构)2007
《软件技术基础》课群体系结构的探讨

! "#$% &’() * + ,! .// # ’ 001 &’%0 2
! ! ! ! 计算机工程与科学
"34-5,67 6 #8.#66 7.#8 9 /" .6#"6
( 00: 年第 (* 卷第 ;’ 期! ! <=>? (!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
文章编号: ’001&’%02 ((00: ) ;’&00%(&0%
K! 引言
随着社会经济的高速 发展, 我国 的高等教 育事 业已 步 入从精英教育向大众 化教育的 发展阶 段, 计算机基 础教 育 在我国乃至全世界都 得到了 普遍重视, 中 小学陆续 开展 了 计算机基础教育工作, 进入 大学后 学生的 计算机水 平较 以 前有了很大 的提 高。大学 计算 机基 础教 学 面临 如下 新 问 题: (’ )中学的 ., 课程使大学生对计算机知识了解增多; (( )大学生来自全国各地, 地域差别加大; (% )计算机技术飞速发展, 软件和方法更新换代加快; ($ )随着高等院校 普及学 分制建 设, 计 算机课 程的 学 时和学分都在压缩。 高等院校的计算机基 础教学 正在经 历着大 的变 革, 从 原来的三个层次教 学向现 在的 ’ M 2 方 式转 化, 计算 机 课 程的要求也从原来的会操作 (一级 3KK."6 为主) 和掌握 一
《软件技术基础》实验指导书_实验三、四

《软件技术基础》实验指导书电子商务教研室2009年9月实验三队列的应用◆实验目的与基本要求1、掌握队列的顺序存储和链式存储结构。
2、掌握队列的特点。
3、掌握队列的基本运算。
◆实验条件1、硬件:一台微机2、软件:操作系统和C语言系统◆实验方法确定存储结构后,上机调试实现队列的基本运算。
◆实验内容1、写出队列的出队和入队算法。
2、设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。
车辆按到达停车场时间的早晚,依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。
如果停车场已停放n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。
停车场内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。
每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。
如果停留在便道上的车未进停车场要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆次序。
编制一个程序模拟该停车场的管理。
◆性质:必做◆类型:验证◆2h队列是从日常排队现象抽象出来的一种数学模型。
当然数据结构中的队列远没有生活中的排队灵活。
数据结构中的队列规定:数据只能从队尾进,从队首出来。
已经进入队列的数据次序不能再做改变。
这就叫做“先进先出”(FIFO)或者说“后进后出”(LILO)。
允许插入的一端称为队尾,通常用一个称为尾指针(rear)的指针指向队尾元素,即尾指针总是指向最后被插入的元素;允许删除的一端称为队首,通常也用一个队首指针(front)指向队首元素的前一个位置(当然也可以直接指向队首元素,只是许多数据结构的书上都习惯这么定义)。
与队列类似,我们可以用一维数组来模拟队列这种数据结构,也可以用链表来模拟。
根据以上描述,队列可以可以有以下基本操作:1、创建初始化:按约定置队列为空状态。
《软件技术基础》上机实验报告范文

《软件技术根底》上机实验报告范文今天为大家收集资料回来了关于实验的范文,希望能够为大家带来帮助,希望大家会喜欢。
同时也希望给你们带来一些参考的作用,如果喜欢就我们的后续更新吧!1.顺序表的建立、插入、删除。
2.带头结点的单链表的建立(用尾插法)、插入、删除。
1.分别建立二个文件夹,取名为顺序表和单链表。
2.在这二个文件夹中,分别存放上述二个实验的相关文件。
每个文件夹中应有三个文件(.c文件、.obj文件和.exe文件)。
3. 截止时间:12月28日(18周周日)晚上关机时为止,届时效劳器将关闭。
1.格式:《计算机软件技术根底》上机实验报告用户名se×××× 学号姓名学院① 实验名称:② 实验目的:③ 算法描述(可用文字描述,也可用流程图):④ 源代码:(.c的文件)⑤ 用户屏幕(即程序运行时出现在机器上的画面):2.对c文件的要求:程序应具有以下特点:a 可读性:有注释。
b 交互性:有输入提示。
c 构造化程序设计风格:分层缩进、隔行书写。
3. 上交时间:12月26日下午1点-6点,工程设计中心三楼教学组。
请注意:过时不候哟!0.顺序表的插入。
1. 顺序表的删除。
2.带头结点的单链表的插入。
3. 带头结点的单链表的删除。
注意:1. 每个人只需在实验报告中完成上述4个工程中的一个,详细安排为:将自己的序号对4求余,得到的数即为应完成的工程的序号。
例如:序号为85的同学,85%4=1,即在实验报告中应完成顺序表的删除。
2. 实验报告中的源代码应是通过编译链接即可运行的。
3. 提交到个人空间中的内容应是上机实验中的全部内容。
《软件技术基础》一体化教学的立体教材研究与实践

(
’U <M 应用 程 序的 建 立、 编译和运行。
J! 《软件技术基础》 主教材的结构体系
本套教材适用于非计算机专业的工科、 指挥类、 管理 类 大学本、 专科 学生, 以及对 <M 程序设 计语言感兴 趣的初 学 者。学完教材, 能够使 用 <M 编写 简单程序, 达到 全国计 算 机等级考试二级水平。
$
%
’U <M 的基 本 数据 类 型、 运算符合表达式; (U 常用内部函数。
J U :! 教学内容的选取
主教材共 ’) 章, 每章、 节标题与学习重点、 建议学时 如
%
(00)&0) &’0; 修订日期: (00)&0* &’) " 收稿日期: 作者简介: 阎京梅 ( ’W1’ ) , 女, 北京人, 讲师, 硕士, 研究 向为面向对象系统分析与设计。 通讯地址: %00’:’ 天津市东局子军事交通学院计算机教研室; ,I> : ( 0(() *$:)1::*; 6&ODH >: CDEXHEKOIHY L=JA U G=O #II?+DD: /IG@H =E =Q "=OPA@IF /GHIEGI , 4H>H@ DFC ,FDQQHG .EL@H@A@I , ,HDEX HE %00’:’ , -U 7 U "JHED
! "#$% &’() * + ,! .// # ’ 001 &’%0 2
! ! ! ! 计算机工程与科学
" 34-5,67 6 #8.#66 7.#8 9 /".6 #"6
( 00: 年第 (* 卷第 ;’ 期! ! <=>? (* , #=? ;’ , (00:!
软件技术基础教学大纲-软件技术基础-瞿亮-清华大学出版社

《软件技术基础》教学大纲一、课程信息二、课程内容(一)课程教学目标通过本课程的学习,使学生了解计算机软件中的相关重要概念、软件技术的基础知识和方法,从而培养学生利用计算机解决问题的意识和能力,为计算机在专业应用中奠定基础。
为非计算机专业学生开设的一门关于计算机软件基础知识的综合性课程,以应用为目的,选择性地介绍数据结构、操作系统、软件工程、数据库技术和网络基础等部分内容,通过这些内容的学习,学生能对计算机软件系统有一个整体的认识和了解。
(二)基本教学内容1、计算机软件技术概述及C语言回顾;2、几种典型数据结构的逻辑结构和存储结构;3、算法的概念,二叉树及图的遍历方法,常用的查找和排序算法。
4、软件工程中的基本概念及生命周期法;5、操作系统中的基本概念及管理方法;6、数据库的基本知识,SQL语言。
7、计算机网络的主要结构和常识。
8.网络新技术(1)计算机软件技术概述及C语言回顾;教学目的与要求:了解软件技术的发展历程,常用软件的分类。
复习开发工具C语言中的相关知识。
教学重点:教材章节内容及开发工具C语言中的相关知识。
教学难点:C语言中指针的应用。
教学内容:软件的概念,历史及分类。
本教程各章节的主要内容及学习方法。
开发工具C语言中较难理解的指针,结构体等编程知识。
(2)数据结构教学目的与要求:理解数据结构的基本概念;理解线性表、栈、队列数据结构的基本概念,理解各线性数据结构的特点和存储结构,掌握基于不同的存储结构的相关操作的实现方法;理解树和图的基本概念,基本特点和存储结构,掌握二叉树的遍历算法的实现以及树和二叉树之间转换的方法;理解查找和排序的基本概念,掌握查找和排序的各三种基本方法和实现。
教学重点:线性表、堆栈、队列、树和图的逻辑结构表示;线性表、堆栈、队列、树和图的存储算法;线性表、堆栈、队列、树和图的插入和删除操作的算法。
教学难点:单链表的建立及操作算法;循环队列的工作原理、查找以及排序算法。
南京航空航天大学软件技术基础数据结构上机实验报告

南京航空航天大学计算机软件技术基础实践实验报告课程名称:计算机软件技术基础专题:数据结构上机实践姓名:xxx学号:xxx学院:自动化学院专业:自动化班级:xxx2013年10月目录(程序和流程图)实验一------------------------------------4第一种算法---------------------------4第二种算法---------------------------7实验二------------------------------------9线性表------------------------------9单链表------------------------------11顺序栈------------------------------14链栈---------------------------------15链列---------------------------------18实验三------------------------------------20二叉树----------------------------20实验四------------------------------------22顺序查找------------------------22二分查找------------------------24插入排序------------------------26选择排序------------------------28冒泡排序------------------------30大作业------------------------------------32通讯录---------------------------32一、实验一实验对象:顺序表。
实验目的:实现两个顺序表的合并。
实验要求:将共同拥有的元素只存其一。
思路清晰,编程正确,并将数据元素显示出来。
《计算机软件技术基础》课后题答案

数据结构习题答案第一节概论一、选择题1.要求同一逻辑结构的所有数据元素具有相同的特性,这意味着( )。
A.数据元素具有同一的特点 *B.不仅数据元素包含的数据项的个数要相同,而且对应数据项的类型要一致 C.每个数据元素都一样 D.数据元素所包含的数据项的个数要相等2.数据结构是一门研究非数值计算的程序设计问题中计算机的( (1) )以及它们之间的( (2) )和运算的学科。
(1) A.操作对象 B.计算方法 *C.物理存储 D.数据映像(2) A.结构 *B.关系 C.运算 D.算法3.数据结构被形式地定义为(D,R),其中D是( (1) )的有限集合,R是D上( (2) )的有限集合。
(1) A.算法 *B.数据元素 C.数据操作 D.逻辑结构(2)A.操作 B.映像 C.存储 *D.关系4.在数据结构中,从逻辑上可以把数据结构分为( )。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构 *C.线性结构和非线性结构 D.内部结构和外部结构5.线性表的顺序存储结构是一种( )的存储结构。
*A.随机存取 B.顺序存取 C.索引存取 D.Hash存取6.算法分析的目的是( )。
A.找出数据结构的合理性 B.研究算法中的输入和输出的关系 *C.分析算法的效率以求改进 D.分析算法的易懂性和文档性7.计算机算法指的是( (1) ),它必须具备输入、输出和( (2) )等五个特征。
(1) A.计算方法 B.排序方法 *C.解决某一问题的有限运算序列D.调度方法(2) A.可行性、可移植性和可扩充性 *B.可行性、确定性和有穷性 C.确定性,有穷性和稳定性 D.易读性、稳定性和安全性8.线性表若采用链表存储结构,要求内存中可用存储单元的地址( )。
A.必须是连续的 B.部分必须是连续的 C.一定是不连续的 *D.连续不连续都可以9.在以下的叙述中,正确的是( )。
A.线性表的线性存储结构优于链式存储结构 *B.二维数组是它的每个数据元素为一个线性表的线性表 C.栈的操作方式是先进先出 D.队列的操作方式是先进后出10.根据数据元素之间关系的不同特性,以下四类基本的逻辑结构反映了四类基本的数据组织形式,其中解释错误的是( )。
新版软基第四次上机实验报告-新版-精选.pdf

else i=hftree[i].rch;
if(hftree[i].lch==0)
6/7
{ cout<<code[i].ch; i=m;
} cin>>b; } } void main() { creathuffmantree(); huffcode(); trancode(); cout<<endl; } 三、测试数据 因比较复杂,我们直接看结果吧 四、上机遇到的问题 调试时遇到问题;解决办法:问同学 五、实际运行结果
s1=s2=32767;
for(j=1;j<=i-1;j++)
if(hftree[j].parent==0)
if(hftree[j].weight<s1)
{
s2=s1;
s1=hftree[j].weight;
p2=p1;
p1=j;
}
else if(hftree[j].weight<s2)
{s2=hftree[j].weight;p2=j;}
if(t->lc!=NULL) postorder(t->lc);
if(t->rc!=NULL) postorder(t->rc);
printf("%d\n",t->data); } } void preorder(bnode *t) { if(t==NULL) {
printf("the tree is null!\n"); return; } else { printf("%d\n",t->data); if(t->lc!=NULL)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四数据结构上机实验
⏹实验目的:
掌握非线性结构中二叉树的基本概念、基本操作和应用
⏹实验内容:
1.创建二叉树:
按照先序序列,逐个输入节点数据,根据二叉树的递归定义,创建生成链式的二叉树。
输入整数0时表示空节点。
(注:每个叶子节点后接两个空节点)
2.二叉树的遍历
a)在已经创建的二叉树中进行先序遍历,并在屏幕上按照访问次序打印输出节点
数据。
b)在已经创建的二叉树中进行中序遍历,并在屏幕上按照访问次序打印输出节点
数据。
c)在已经创建的二叉树中进行后序遍历,并在屏幕上按照访问次序打印输出节点
数据。
⏹实验报告:
1.源代码(包括主要结构、主要语句、函数注释说明)
2.运行结果(包括程序如何使用,输入数据和输出结果)
3.实验体会和问题分析
程序需补充完整
#include <stdio.h>
#include <stdlib.h>
typedef struct btreenode
{
int data;
struct btreenode *LC;
struct btreenode *RC;
} bnode;
void PreOrder(bnode *BT)/*先序遍历*/
{
if(BT==NULL)
return;
else
{
printf("%d ",BT->data);/*访问节点数据*/
if(BT->LC!=NULL) ;/*先序遍历左子树*/
if(BT->RC!=NULL) ;/*先序遍历右子树*/ }
}
void InOrder(bnode *BT)/*中序遍历*/
{
if(BT==NULL)
;
else
{
if(BT->LC!=NULL) InOrder(BT->LC);/*中序遍历左子树*/
printf("%d ",BT->data);/*访问节点数据*/
if(BT->RC!=NULL) InOrder(BT->RC);/*中序遍历右子树*/ }
}
void PostOrder(bnode *BT)
{
if (BT==NULL)
return;
else
{
if(BT->LC!=NULL) PostOrder( );/*后序遍历左子树*/
if(BT->RC!=NULL) PostOrder( );/*后序遍历右子树*/
printf("%d ",BT->data);/*访问节点数据*/
}
}
bnode *CreatBiTree()/*按先序创建二叉树*/
{
bnode *proot;
char t;
printf("\ninput a int:");
scanf("%d",&t);
if(t==0)/*输入0时,认为是空节点*/
{
proot= NULL;
}
else
{
proot = (bnode *)malloc(sizeof(bnode));/*申请新的节点空间*/
proot->data=t;
proot->LC= ;/*创建节点左子树*/
proot->RC= ;/*创建节点右子树*/ }
return proot;
}
void main()
{
bnode *T;
T=CreatBiTree();
printf("\nOrder:\n");
printf("\nPreOrder:\n");
PreOrder(T);
printf("\n\nInOrder:\n");
InOrder(T);
printf("\n\nPostOrder:\n");
PostOrder(T);
}。