2010级算法与数据结构实验指导书18_蔡琼

2010级算法与数据结构实验指导书18_蔡琼
2010级算法与数据结构实验指导书18_蔡琼

《算法与数据结构》实验指导书

实验课程类别:课程内实验

实验课程性质:必修

适用专业、年级:2010级计算机工程、计算机网络

开课院、系:计算机科学与工程学院计算机工程教研室

学时:18

编写依据:《算法与数据结构》实验教学大纲

修订时间:2012年2月

《算法与数据结构》课程实验指导书(以下简称:指导书)是针对计算机学院所开设的对应课程的上机实验而编写的教学文件,供学生上机实验时使用。

上机的工作环境要求:Windows 2000或以上操作系统、VC++ 6.0或者其它高级程序设计语言。

学生应按指导教师的要求独立完成实验,并按要求撰写实验报告。

每一个实验,编程上机调试并且提交电子文档实验报告,以学号姓名作为文件名上传。报告内容至少包含如下内容:

1、学生基本情况:专业班级、学号、姓名

2、实验题目、实验内容

3、设计分析

4、源程序代码

5、测试用例(尽量覆盖所有分支)

6、实验总结

一.实验内容与学时分配

序次实验

题目

实验

类型

基本技能训练

一线性结构综合应用综合性(1)掌握线性结构的常用操作;

(2)能够应用线性结构解决比较简单的问题。

10

二非线性结构综合应

用综合性

(1)掌握树形、图形结构的插入、删除、查找等算法;

(2)能够应用二叉树解决比较简单的问题。

4

三查找技术综合应用综合性(1)熟练掌握查找的常用算法;

(2)熟练设计和应用查找算法解决简单的实际问题。

2

四排序技术综合应用综合性(1)熟练掌握常用的排序方法,并掌握用高级语言实

现排序算法的方法;

(2)深刻理解排序的定义和各种排序方法的特点,并

能加以灵活应用;

(3)了解各种方法的排序过程及其依据的原则,并掌

握各种排序方法的时间复杂度的分析方法。

2

二.实验说明

实验一、线性结构综合应用

(一)顺序表的应用

1、实验目的:

(1)掌握用VC++上机调试线性表的基本方法;

(2)掌握顺序表的存储结构以及基本运算的实现。

2、实验内容

约瑟夫环问题:设编号为1,2,3,……,n的n(n>0)个人按顺时针方向围坐一圈,m为任意一个正整数。从第一个人开始顺时针方向自1起顺序报数,

报到m时停止并且报m的人出列,再从他的下一个人开始重新从1报数,报到

m时停止并且报m的人出列。如此下去,直到所有人全部出列为止。要求设计

一个程序模拟此过程,对任意给定的m和n,求出出列编号序列。

3、实验要求:用顺序表实现。

(二)链表的应用

1、实验目的:

(1)熟练掌握链表结构及有关算法的设计;

(3)掌握用链表表示特定形式的数据的方法,并能编写出有关运算的算法。

2、实验内容:一元多项式求和。

把任意给定的两个一元多项式P(x),Q(x)输入计算机,计算它们的和并输出计算结果。

3、实验说明:

一元多项式可以用单链表表示,结点结构图示如下:

coef exp next

一元多项式链表的结点结构

一元多项式算法伪代码如下:

1. 工作指针p、q初始化;

2. while(p存在且q存在)执行下列三种情形之一

2.1 如果p->expexp,则指针p后移;

2.2 如果p->exp>q->exp,则

2.2.1 将结点q插入到结点p之前;

2.2.2 指针q指向原指结点的下一个结点;

2.3 如果p->exp=q->exp,则

2.3.1 p->coef =p->coef+q->coef;

2.3.2 如果p->coef ==0,则执行下列操作,否则,指针p后移;

2.3.2.1 删除结点p;

2.3.2.2 使指针p指向它原指结点的下一个结点;

2.3.3 删除结点q;

2.3.4 使指针q指向它原指结点的下一个结点;

3. 如果q不为空,将结点q链接在第一个单链表的后面;

(三) 栈的应用

1、实验目的:

(1)掌握栈的特点及其存储方法;

(2)掌握栈的常见算法以及程序实现; (3)了解递归的工作过程。

2、实验内容:Hanoi 塔问题。(要求4个盘子移动,输出中间结果)

3、实验说明:三个盘子Hanoi 求解示意图如下:

三个盘子汉诺塔算法的运行轨迹:

Hanio 算法如下:

1 void Hanoi (int n, char A, char B, char C ) //第一列为语句行号

2 {

3 if (n==1) Move (A, C ); //Move 是一个抽象操作,表示将碟子从A 移到C 上

4 else {

5 Hanoi (n -1, A, C, B );

6 Move (A, C );

7 Hanoi (n -1, B, A, C );

8 }

9 }

(四) 队列的应用

1、实验目的:

(1)掌握队列的特点及其存储方法;

B A

B C A B C A C A B C (a (b)

(c (d) ⑸ ⑼ ⑶ Hanio(3,A,B,C)

Hanio(3,A,B,C)

Hanio(2,A,C,B)

Hanio(2,A,C,B) Hanio(1,A,B,C) Hanio(1,A,B,C)

Move (A,C) Move (A,B)

Hanio(1,C,A,B) Hanio(1,C,A,B)

Move (C,B) Move (A,B)

Hanio(2,B,A,C) Hanio(2,B,A,C) Hanio(1,B,C,A) Hanio(1,B,C,A) Move (B,C)

Hanio(1,A,B,C) Hanio(1,A,B,C)

Move (A,C) Move (B,A)

递归第一层

递归第二层 递归第三层

⑴ ⑵ ⑷

⑹ ⑺ ⑻

⑾ ⑿

⒀ ⒁

出 轨 入 轨

581

H 1

H 3

H 2

963 742

出 轨

入 轨

58

H 1

H 3 H 2

96 7 4321

出 轨 入 轨

5 H 1 H 3

H 2

96

87

54321

出 轨

入 轨

H 1

H 3 H 2

987654321

(a) 将369、247依次入缓冲轨 (b) 将1移至出轨,234移至

出轨

(c)

将8入缓冲轨,5移至出轨 (d) 将6789移至出轨

(2)掌握队列的常见算法和程序实现。

2、实验内容:火车车厢重排问题。

3、实验说明:

转轨站示意图如下:

火车车厢重排过程如下:

火车车厢重排算法伪代码如下:

出 轨

入 轨

581742963

987654321

H 1

H 3 H 2

1. 分别对k 个队列初始化;

2. 初始化下一个要输出的车厢编号nowOut = 1;

3. 依次取入轨中的每一个车厢的编号; 3.1 如果入轨中的车厢编号等于nowOut ,则

3.1.1 输出该车厢;

3.1.2 nowOut++;

3.2 否则,考察每一个缓冲轨队列

for (j=1; j<=k; j++)

3.2.1 取队列 j 的队头元素c ;

3.2.2 如果c=nowOut ,则

3.2.2.1 将队列 j 的队头元素出队并输出;

3.2.2.2 nowOut++;

3.3 如果入轨和缓冲轨的队头元素没有编号为nowOut 的车厢,则 3.3.1 求小于入轨中第一个车厢编号的最大队尾元素所在队列编号j;

3.3.2 如果 j 存在,则把入轨中的第一个车厢移至缓冲轨 j ;

3.3.2 如果 j 不存在,但有多于一个空缓冲轨,则把入轨中的第一个车厢移至一个

空缓冲轨;否则车厢无法重排,算法结束;

(五) 稀疏矩阵的应用

1、实验目的:

(1)掌握掌握稀疏矩阵的表示方法及其运算的实现;

(2)实现稀疏矩阵在三元组、十字链表等表示下的各运算并分析其效率。 2、实验内容

在m ×n 的矩阵中,有t 个非零元。令δ= t/(m*n),称δ矩阵的稀疏因子,常认为δ≤0.05时称为稀疏矩阵。稀疏矩阵在工程中有着大量的应用,不少工程问题都可以转化为对稀疏矩阵的计算问题。用三元组表实现稀疏矩阵的转

置,用(顺序取,直接存)方法。

3、实验说明:

引入两个数组作为辅助数据结构:

num[nu]:表示矩阵A 中某列的非零元素的个数;

cpot[nu]:初始值表示矩阵A 中某列的第一个非零元素在B 中的位置。 num 与cpot 递推关系:

三元组表实现稀疏矩阵的转置(顺序取,直接存)算法伪代码如下:

实验二、非线性结构综合应用 (六) 树的应用

1、实验目的:

(1)针对问题的实际要求,正确应用树形结构组织和存储数据; (2)掌握二叉树的存储方法。 (3)掌握二叉树的各种遍历方法。

2、实验内容: 二叉树后序遍历的非递归算法。

3、实验说明:

二叉树后序遍历的非递归算法:结点要入两次栈,出两次栈;为了区别同一个结点的两次出栈,设置标志flag ,当结点进、出栈时,其标志flag 也同时进、出栈。

设根指针为root ,则可能有以下两种情况:

cpot[0]=0;

cpot[col]=cpot[col -1]+num[col -1]; 1≤col <nu

1. 设置转置后矩阵B 的行数、列数和非零元素的个数;

2. 计算A 中每一列的非零元素个数;

3. 计算A 中每一列的第一个非零元素在B 中的下标;

4. 依次取A 中的每一个非零元素对应的三元组;

2.1 确定该元素在B 中的下标pb ;

2.2 将该元素的行号列号交换后存入B 中pb 的位置; 2.3 预置该元素所在列的下一个元素的存放位置;

1 第一次出栈,只遍历完左子树,该结点不能访问

2 第二次出栈,遍历完右子树,该结点可以访问

flag =

⑴若root!=NULL,则root及标志flag(置为1)入栈,遍历其左子树;

⑵若root=NULL,此时若栈空,则整个遍历结束;若栈不空,则表明栈

顶结点的左子树或右子树已遍历完毕。若栈顶结点的标志flag=1,则表明

栈顶结点的左子树已遍历完毕,将flag修改为2,并遍历栈顶结点的右子

树;若栈顶结点的标志flag=2,则表明栈顶结点的右子树也遍历完毕,输

出栈顶结点。

二叉树后序遍历的非递归算法伪代码如下:

1. 栈s初始化;

2. 循环直到root为空且栈s为空

2.1 当root非空时循环

2.1.1将root连同标志flag=1入栈;

2.1.2 继续遍历root的左子树;

2.2 当栈s非空且栈顶元素的标志为2时,出栈并输出栈顶结点;

2.3 若栈非空,将栈顶元素的标志改为2,准备遍历栈顶结点的右子树;(七)图的应用

1、实验目的:

(1)熟练掌握图的基本存储方法;

(2)熟练掌握图的深度优先和广度优先搜索方法;

(3)掌握AOV网和拓扑排序算法;

(4)掌握AOE网和关键路径。

2、实验内容:拓扑排序。

任意给定一个有向图,设计一个算法,对它进行拓扑排序。拓扑排序算法思想:a.在有向图中任选一个没有前趋的顶点输出;b.从图中删除该顶点和所

有以它为尾的弧;c.重复上述a、b,直到全部顶点都已输出,此时,顶点输

出序列即为一个拓朴有序序列;或者直到图中没有无前趋的顶点为止,此情形

表明有向图中存在环。

3、实验说明:

拓扑排序算法伪代码如下:

1. 栈S初始化;累加器count初始化;

2. 扫描顶点表,将没有前驱(即入度为0)的顶点压栈;

3. 当栈S非空时循环

3.1 v j=退出栈顶元素;输出v j;累加器加1;

3.2 将顶点v j的各个邻接点的入度减1;

3.3 将新的入度为0的顶点入栈;

4. if (count

实验三、查找技术综合应用

(八)查找技术综合应用

1、实验目的:

(1)熟练掌握查找的常用算法;

(2)熟练设计和应用查找算法解决比较简单的实际问题。

2、实验内容:二叉排序树。

任意给定一组数据,设计一个算法,建立一棵二叉排序树,对它进行查找、

插入、删除等操作。

3、实验说明:

二叉排序树存储结构如下:

typedef struct BiTNode { // 结点结构

struct BiTNode *l child, *r child;

// 左右孩子指针

} BiTNode, *BiTree;

二叉排序树插入算法伪代码如下:

1. 若root是空树,则将结点s作为根结点插入;否则

2. 若s->data<root->data,则把结点s插入到root的左子树中;否则

3. 把结点s插入到root的右子树中。

二叉排序树中删除一个结点f的左孩子结点p算法伪代码如下:

1. 若结点p是叶子,则直接删除结点p;

2. 若结点p只有左子树,则只需重接p的左子树;

若结点p只有右子树,则只需重接p的右子树;

3. 若结点p的左右子树均不空,则

3.1 查找结点p的右子树上的最左下结点s以及结点s的双亲结点par;

3.2 将结点s数据域替换到被删结点p的数据域;

3.3 若结点p的右孩子无左子树,则将s的右子树接到par的右子树上;

否则,将s的右子树接到结点par的左子树上;

3.4 删除结点s;

实验四、排序技术综合应用

(九)排序技术综合应用

1、实验目的:

(1)熟练掌握常用的排序方法,并掌握用高级语言实现排序算法的方法;

(2)深刻理解排序的定义和各种排序方法的特点,并能加以灵活应用;

(3)了解各种方法的排序过程及其依据的原则,并掌握各种排序方法的时间

复杂度的分析方法。

2、实验内容:对希尔排序、快速排序、归并排序任意选择两种排序方法进行比较。

任意选择希尔排序、快速排序、归并排序中两种排序方法,对任意给定一

组数据:单增、单减、乱码等,对它们进行比较分析。

3、实验说明:

希尔排序算法如下:

void ShellSort(int r[ ], int n)

{

for (d=n/2; d>=1; d=d/2)//以增量为d进行直接插入排序

{

for (i=d+1; i<=n; i++)

{

r[0]=r[i]; //暂存被插入记录

for (j=i-d; j>0 && r[0]

r[j+d]=r[j]; //记录后移d个位置

r[j+d]=r[0];

}

}

}

快速排序算法如下:

void QuickSort(int r[ ], int first, int end)

{

if (first

pivot=Partition(r, first, end); //一次划分

QuickSort(r, first, pivot-1); //递归地对左侧子序列进行快速排序

QuickSort(r, pivot+1, end); //递归地对右侧子序列进行快速排序}

}

int Partition(int r[ ], int first, int end)

{

i=first; j=end; //初始化

while (i

{

while (i

if (i

r[i]←→r[j]; //将较小记录交换到前面

i++;

}

while (i

if (i

r[j]←→r[i]; //将较大记录交换到后面

j--;

}

}

retutn i; //i为轴值记录的最终位置

}

修订者:蔡琼

2012-2

单机版-研旭光伏并网逆变器说明书_图文(精)

研旭光伏并网逆变器 YXSG-2.5KSL , YXSG-3KSL , YXSG-5KSL 安装使用手册 目录 1、安全说 明 (3) 2、产品描 述 (5) 2.1光伏并网系 统 .................................................................................................................... 6 2.2电路结构 ............................................................................................................................ 7 2.3特点 . .. (7)

2.4逆变器外观描 述 (8) 3、安 装 .......................................................................................................................................... 10 3.1 安装须 知 ......................................................................................................................... 10 3.2 安装流程说明 .. (11) 3.3安装准备 .......................................................................................................................... 12 3.4 选择合适的安装场 地 ..................................................................................................... 12 3.5 安装逆变 器 (14) 3.6 电气连 接 (14) 4、 LCD 操作说 明 . ......................................................................................................................... 21 4.1 按键功能说明 .. (21) 4.2 界面介 绍 (22) 5、故障排 除 (27) 5.1 初始化失败 ..................................................................................................................... 27 5.2 LCD 显示故 障 (27)

数据结构与算法基础知识总结

数据结构与算法基础知识总结 1 算法 算法:是指解题方案的准确而完整的描述。 算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。 算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。特征包括: (1)可行性; (2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性; (3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义; (4)拥有足够的情报。 算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。 指令系统:一个计算机系统能执行的所有指令的集合。 基本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。 算法的控制结构:顺序结构、选择结构、循环结构。 算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。 算法复杂度:算法时间复杂度和算法空间复杂度。 算法时间复杂度是指执行算法所需要的计算工作量。 算法空间复杂度是指执行这个算法所需要的内存空间。 2 数据结构的基本基本概念 数据结构研究的三个方面: (1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构; (2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;(3)对各种数据结构进行的运算。 数据结构是指相互有关联的数据元素的集合。 数据的逻辑结构包含: (1)表示数据元素的信息; (2)表示各数据元素之间的前后件关系。 数据的存储结构有顺序、链接、索引等。 线性结构条件:

(1)有且只有一个根结点; (2)每一个结点最多有一个前件,也最多有一个后件。 非线性结构:不满足线性结构条件的数据结构。 3 线性表及其顺序存储结构 线性表由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。 在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。 非空线性表的结构特征: (1)且只有一个根结点a1,它无前件; (2)有且只有一个终端结点an,它无后件; (3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。结点个数n称为线性表的长度,当n=0时,称为空表。 线性表的顺序存储结构具有以下两个基本特点: (1)线性表中所有元素的所占的存储空间是连续的; (2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。 ai的存储地址为:adr(ai)=adr(a1)+(i-1)k,,adr(a1)为第一个元素的地址,k代表每个元素占的字节数。 顺序表的运算:插入、删除。(详见14--16页) 4 栈和队列 栈是限定在一端进行插入与删除的线性表,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。 栈按照“先进后出”(filo)或“后进先出”(lifo)组织数据,栈具有记忆作用。用top表示栈顶位置,用bottom表示栈底。 栈的基本运算:(1)插入元素称为入栈运算;(2)删除元素称为退栈运算;(3)读栈顶元素是将栈顶元素赋给一个指定的变量,此时指针无变化。 队列是指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。rear指针指向队尾,front指针指向队头。 队列是“先进行出”(fifo)或“后进后出”(lilo)的线性表。 队列运算包括(1)入队运算:从队尾插入一个元素;(2)退队运算:从队头删除一个元素。循环队列:s=0表示队列空,s=1且front=rear表示队列满

数据结构与算法实验指导实验十

#include"stdio.h" #include"stdlib.h" #define NULL 0 #define maxsize 50 typedef struct node{ char data; struct node *lchild,*rchild; }Bitree; int a[maxsize]; int temp=0; Bitree *Q[maxsize]; Bitree *Creatree(){ char ch; int front,rear; Bitree *T,*S; T=NULL; front=1;rear=0; printf("建立二叉树,以@表示虚节点,以#结束输入:\n"); ch=getchar(); while(ch!='#'){ S=NULL; if(ch!='@'){ //@表示虚节点不是虚节点是建立新节点 S=(Bitree *)malloc(sizeof(Bitree)); S->data=ch; S->lchild=S->rchild=NULL; } rear++;Q[rear]=S; //将虚节点指针NULL或新节点地址入队 if(rear==1) T=S; //输入第一个节点为根节点 else{ if(S!=NULL&&Q[front]!=NULL) if(rear%2==0) Q[front]->lchild=S; else Q[front]->rchild=S; if(rear%2==1) front++; //节点Q[front]的两个孩子已经处理完毕,front+1 } ch=getchar(); } return T; } void Inorder(Bitree *T){ //中序遍历二叉树,并将每个结点数据存入数组中if(T!=NULL){ Inorder(T->lchild);

电力电子实验指导书(2013) 2

实验一三相桥式全控整流实验 一.实验目的 1.熟悉MCL-18, MCL-33组件。 2.熟悉三相桥式全控整流及有源逆变电路的接线及工作原理。 3.了解集成触发器的调整方法及各点波形。 二.实验内容 1.三相桥式全控整流电路 2.观察整流下或模拟电路故障现象时的波形。 三.实验线路及原理 实验线路下图所示。主电路由三相全控变流电路桥给直流电机供电。可实现直流电动机的调压调速。触发电路为数字集成电路,可输出经高频调制后的双窄脉冲链。 四.实验设备及仪器 1.MCL系列教学实验台主控制屏。 2.MCL—18组件(适合MCL—Ⅱ)或MCL—31组件(适合MCL—Ⅲ)。 3. 电机导轨及测速发电机(或光电编码器) 4.二踪示波器 5.万用表 五.实验方法 1.按图接线,未上主电源之前,检查晶闸管的脉冲是否正常。 (1)打开MCL-18电源开关,给定电压有电压显示。 (2)用示波器观察MCL-33的双脉冲观察孔,应有间隔均匀,相互间隔60o的幅度相同的双脉冲。 (3)检查相序,用示波器观察“1”,“2”单脉冲观察孔,“1”脉冲超前“2”脉冲600,则相序正确,否则,应调整输入电源。 (4)用示波器观察同步变压器电压和触发脉冲波形,观察移相控制过程并记录波形。其中一个探头接脉冲信号另一个接同步电压信号,两探头共15V地线。 U 注:将I组桥式触发脉冲的六个开关均拨到“接通”。GT和AP1已内部连线无需接线。将 blf 接地。 (5)将给定器输出Ug接至MCL-33面板的Uct端,调节偏移电压Ub,在Uct=0时,使 =150o。 2.三相桥式全控整流电路供电直流电动机调压调速实验 (1)按上图接线,UVW电源线按实验板指定颜色接入保存相序正确,经指导教师检查后方可送电。送电前注意将给定电位器逆时针转到底,保证给定为0V或负给定。 (2)送电顺序合上电源总开关后先送控制电源,再按启动按扭送主回路电源。停机时前将给定电压降至零,按先停主电源后停控制电源顺序停电。 (3)调节Uct,移相控制整流电压,缓慢升速,用示波器观察记录转速为400、800、1200转/分时,整流电压u d=f(t),晶闸管两端电压u VT=f(t)的波形,并记录相应的Ud和交流输入电压U2数值,计算相应的移相控制角数值。

C语言实验指导书

《C语言》实验指导书 2016年10月

实验一C程序得运行环境与运行方法 一、实验目得 1。掌握所用得C语言环境得基本操作方法、 2.掌握编辑、编译、连接与运行C程序。 二、实验内容与要求 1、学习使用Visual C++6.0环境开发C程序。 (1)在磁盘上建立自己得文件夹,用于存放C程序,如“e:\cexam”。 (2)启动Visual C++6。0、执行“开始”-—“所有程序”——“Microsoft Visual Studio 6。0"——“Microsoft Visual Studio 6.0”命令,进入VC++编程环境,如图1 所示。 图1 MicrosoftVisual Studio6、0窗口 (3)新建C 程序文件。 执行“文件”——“新建”命令,单击如图2所示得“文件”选项卡,选中“C++So urceFile”;

图 2 新建文件 在“文件”文本框中输入文件名test1, 则C源程序被命名为test1。cpp,若想指定扩展名为.c,则需在“文件”文本框中输入文件名test1.c;在“目录”下拉列表框选择已经建立得文件夹,如,单击“确定”按钮,就新建了C源程序文件,并显示编辑窗口与信息窗口,如图3所示,然后在编辑窗口中输入程序。 (4)保存程序。 在如图3得界面输入程序代码。由于完全就是Windows 界面,输入及修改可借助鼠标与菜单进行,十分方便。当输入结束后,执行“文件”——“保存”命令,保存源文件。 图3编辑源程序(5)编译程序。信息窗口编辑窗口

执行“组建”--“编译[test1、cpp]”命令,弹出消息框,如图4所示,单击“就是"按钮,开始编译,并在信息窗口中显示编译信息。如果信息窗口中显示“test1.obj-0error(s),0 warning(s)",表示编译正确,没有发现错误与警告,并生成了目标文件test1、obj、 图4产生工作区消息框 如果显示错误信息,说明程序中存在严重得错误,必须改正,双击某行出错信息,程序窗口中会指示对应出错位置,根据信息窗口得提示分别予以纠正;如果显示警告信息,说明这些错误并未影响目标文件得生成,但通常也应该改正。 (6)连接程序。 执行“组建”——“组建[test1.exe]”命令,开始连接,并在信息窗口中显示连接信息、如果信息窗口中出现“test1.exe—0 error(s),0 warning(s)”,表示连接成功, 并生成了可执行文件test1、exe。 (7)运行程序。 执行“组建"——“执行[test1、exe]”命令,自动弹出运行窗口,如图5所示,显示运行结果。其中“Pressany key to continue”提示用户按任意键退出运行窗口,返回到VC++编辑窗口。 图 5 显示运行结果 (8)关闭程序工作区。 当一个程序编译连接后,VC++系统自动产生相应得工作区,以完成程序得运行与调试。若想执行第二个程序时,必须关闭前一个程序得工作区,然后通过新得编译连接,产生第二个程序得工作区。否则得话运行得将一直就是前一个程序。 执行“文件"--“关闭工作区命令",弹出得对话框如图 6所示,单击“就是”按钮,关闭工作区。 图 6 关闭所有文档窗口 (9)打开文件、 如果要再次打开C源文件,可以执行“文件”——“打开”命令,在查找范围中找到

算法与数据结构实验

学生实验报告册 (理工类) 课程名称:算法与数据结构专业班级 学生学号:学生: 所属院部:计算机工程学院指导教师:章海鸥 2016 ——2017 学年第 1 学期 金陵科技学院教务处制 实验报告书写要求 实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸一律采用 A4的纸。

实验报告书写说明 实验报告中一至四项容为必填项,包括实验目的和要求;实验仪器和设备;实验容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。 填写注意事项 (1)细致观察,及时、准确、如实记录。 (2)准确说明,层次清晰。 (3)尽量采用专用术语来说明事物。 (4)外文、符号、公式要准确,应使用统一规定的名词和符号。 (5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。 实验报告批改说明 实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。 实验报告装订要求 实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。

实验项目名称:顺序表实验学时: 2 同组学生:╱实验地点: 实验日期:实验成绩: 批改教师:批改时间:

实验1 顺序表 一、实验目的和要求 掌握顺序表的定位、插入、删除等操作。 二、实验仪器和设备 VC6.0 三、实验容与过程(含程序清单及流程图) 1、必做题 (1)编写程序建立一个顺序表,并逐个输出顺序表中所有数据元素的值。 编写主函数测试结果。 (2)编写顺序表定位操作子函数,在顺序表中查找是否存在数据元素x。 如果存在,返回顺序表中和x值相等的第1个数据元素的序号(序号 从0开始编号);如果不存在,返回-1。编写主函数测试结果。 (3)在递增有序的顺序表中插入一个新结点x,保持顺序表的有序性。 解题思路:首先查找插入的位置,再移位,最后进行插入操作;从第 一个元素开始找到第一个大于该新结点值x的元素位置i即为插入位 置;然后将从表尾开始依次将元素后移一个位置直至元素i;最后将 新结点x插入到i位置。 (4)删除顺序表中所有等于X的数据元素。 2、选做题 (5)已知两个顺序表A和B按元素值递增有序排列,要求写一算法实现将A和B归并成一个按元素值递减有序排列的顺序表(允许表中含有值 相同的元素)。 程序清单: (1) #include #define maxsize 20 typedef int datatype; typedef struct{ datatype data[maxsize];

算法与数据结构实验册

实验报告书写要求 实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。 实验报告书写说明 实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。 填写注意事项 (1)细致观察,及时、准确、如实记录。 (2)准确说明,层次清晰。 (3)尽量采用专用术语来说明事物。 (4)外文、符号、公式要准确,应使用统一规定的名词和符号。 (5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。 实验报告批改说明 实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。 实验报告装订要求 实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课 程的实验大纲。

实验项目名称:顺序表实验学时: 2 同组学生姓名:全班同学实验地点: 1318 实验日期: 10 月14号实验成绩: 批改教师:批改时间:

实验1 顺序表 一、实验目的和要求 掌握顺序表的定位、插入、删除等操作。 二、实验仪器和设备 Turbo C 2.0 三、实验内容与过程(含程序清单及流程图) 1、必做题 (1)编写程序建立一个数续表,并逐个输出顺序表中所有数据元素的值。 编写主函数测试结果。 (2)编写顺序表定位操作子函数,在顺序表中查找是否存在数据元素x。 如果存在,返回顺序表中和x值相等的第1个数据元素的序号(序号 从0开始编号);如果不存在,返回-1。编写主函数测试结果。 (3)在递增有序的顺序表中插入一个新结点x,保持顺序表的有序性。 解题思路:首先查找插入的位置,再移位,最后进行插入操作;从第 一个元素开始找到第一个大于该新结点值x的元素位置i即为插入位 置;然后将从表尾开始依次将元素后移一个位置直至元素i;最后将新 结点x插入到i位置。 (4)删除顺序表中所有等于X的数据元素。 2、选做题 (5)已知两个顺序表A和B按元素值递增有序排列,要求写一算法实现将A和B归并成一个按元素值递减有序排列的顺序表(允许表中含有值 相同的元素)。 程序清单: 第一题: #include #define maxsize 100 typedef struct{ int datatype [maxsize]; int last; }sequenlist; void main(){ sequenlist a={{1,2,3,4},4}; for(int i=0;i

计科本科生《算法与数据结构》实验报告4

学院专业姓名学号 实验1:约瑟夫环问题(3学时) [问题描述] 将编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个开始按顺时针方向自1开始报数,报到m时停止报数。报m的人出列,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。 [实验目的] (1)掌握线性表的顺序存储结构和循环顺序存储结构。 [实验内容及要求] (1)构造数据结构。 (2)对线性表进行初始化。 [测试数据] 输入一组n,m值时,程序输出出列顺序。 [思考] (1)你采用的存储结构是顺序表还是循环顺序表?哪个比较合适? (2)当存储结构为循环链表时,如何修改你的程序?并考虑两种存储结构的优缺点。

学院专业姓名学号 实验2:ADT List(线性表)(3学时) [问题描述] 线性表是典型的线性结构,实现ADT List,并在此基础上实现两个集合的交运算或并运算。[实验目的] (1)掌握线性表的链表存储结构。 (2)掌握在单链表上基本操作的实现。 (3)在掌握单链表的基本操作上进行综合题的实现。 [实验内容及要求] (1)要求用带头结点的单链表存储两个集合中的元素和最终的结果。 (2)集合的元素限定为十进制数,程序应对出现重复的数据进行过滤,即链表中没有重复数据。 (3)显示两个集合的内容及其运算结果。 [测试数据] (1)set1={3, 8, 5, 8,11},set2={22, 6, 8, 3, 15,11,20 } set1∪set2= set1∩set2= (2)set1={1, 3, 5, 7},set2={2, 3, 7, 14, 25,38} set1∪set2= set1∩set2=

光伏并网逆变器测试规范

深圳市晶福源电子技术有限公司 并网逆变器电性能测试规范 (此文档只适用于金太阳标准) 拟制:彭庆飞/丁川日期:2012.11.19 审核:石绍辉日期:2012.12.01 复审:石绍辉日期:2012.12.07 批准:石绍辉日期:2012.12.07 文件编号:20111219 生效日期:2013.1.1版本号:VA.1

文件修订记录

目录 1目的 (6) 2适用范围 (6) 3定义 (6) 4引用/参考标准 (6) 5测试基本原则及判定准则 (6) 5.1测试基本原则 (6) 5.2 测试问题分类的基本原则和标准 (6) 5.4 质量判定准则 (6) 6测试仪器、测试工具、测试环境 (7) 6.1 测试仪器 (7) 6.2 测试工具 (7) 6.3 测试环境 (7) 7测试项目、测试说明、测试方法、判定标准 (7) 7.1基本性能测试 (7) 7.1.1 直流输入电压范围和过欠压测试 (7) 7.1.2 电网电压响应测试 (8) 7.1.3 电网频率响应测试 (9) 7.1.4 并网电流直流分量 (10) 7.1.5 并网电压的不平衡度测试 (10) 7.1.6 功率因数测试 (10) 7.1.7 效率测试 (11) 7.1.8 最大功率点跟踪(MPPT)测试 (11) 7.1.9 并网电流谐波测试 (13) 7.1.10 噪声测试 (13) 7.1.11 检测和显示精度测试 (14) 7.1.12 母线软启动及浪涌电流测试 (15) 7.1.13 自动开关机测试 (15) 7.1.14 逆变软启动测试 (16) 7.1.16 PV输入限流测试 (16) 7.1.18 输出隔离变压测试 (16) 7.1.19 恢复并网保护测试 (17) 7.1.20 输出过流保护测试 (17) 7.1.21 防反放电保护测试 (18) 7.1.22 极性反接保护测试 (18) 7.1.23 输入过载保护测试 (19) 7.1.24 孤岛保护测试 (19) 7.1.25 逆向功率保护测试 (21) 7.1.26 EPO紧急关机测试 (22) 7.1.29 EPO关机驱动电压测试 (22) 7.1.30 电容放电时间测试 (23) 7.1.31 死区时间测试 (23) 7.1.33 母线电容纹波电流测试 (23) 7.1.34 逆变滤波电容纹波电流测试 (24) 7.1.35 逆变电感纹波电流测试 (24) 7.2 故障模拟测试 (24) 7.2.1 母线软启动失败测试 (24) 7.2.3 输出变压器和电抗器过温模拟测试 (25) 7.2.5 逆变晶闸管/接触器开路故障模拟测试 (25) 7.2.7 风扇故障模拟测试 (26) 7.2.8 输出相序接反保护测试 (26)

数据结构与算法的实验报告

数据结构与算法第二次实验报告 电子105班 赵萌 2010021526

实验二:栈和队列的定义及基本操作 一、实验目的: . 熟练掌握栈和队列的特点 . 掌握栈的定义和基本操作,熟练掌握顺序栈的操作及应用 . 掌握对列的定义和基本操作,熟练掌握链式队列的操作及应用, 掌握环形队列的入队和出队等基本操作 . 加深对栈结构和队列结构的理解,逐步培养解决实际问题的编程能力 二、实验内容: 定义顺序栈,完成栈的基本操作:空栈、入栈、出栈、取栈顶元素; 实现十进制数与八进制数的转换; 定义链式队列,完成队列的基本操作:入队和出队; 1.问题描述: (1)利用栈的顺序存储结构,设计一组输入数据(假定为一组整数),能够对顺序栈进行如下操作: . 初始化一个空栈,分配一段连续的存储空间,且设定好栈顶和栈底; . 完成一个元素的入栈操作,修改栈顶指针; . 完成一个元素的出栈操作,修改栈顶指针; . 读取栈顶指针所指向的元素的值; . 将十进制数N 和其它d 进制数的转换是计算机实现计算的基本问题,其解决方案很多,其中最简单方法基于下列原理:即除 d 取余法。例如:(1348)10=(2504)8 N N div 8 N mod 8 1348 168 4 168 21 0 21 2 5 2 0 2 从中我们可以看出,最先产生的余数 4 是转换结果的最低位,这正好符合栈的特性即后进先出的特性。 所以可以用顺序栈来模拟这个过程。以此来实现十进制数与八进制数的转换; . 编写主程序,实现对各不同的算法调用。 (2)利用队列的链式存储结构,设计一组输入数据(假定为一组整数),能够对链式队列进行如下操作: . 初始化一个空队列,形成一个带表头结点的空队; . 完成一个元素的入队操作,修改队尾指针; . 完成一个元素的出队操作,修改队头指针; . 修改主程序,实现对各不同的算法调用。

并网逆变器实验指导书

并网逆变器实训系统 指导书 2014年9月 北京海瑞克科技发展有限公司

实验一并网逆变系统基本认识 一、实验目的 1、了解并网逆变系统基本知识。 2、了解并网逆变器的基本结构。 3、了解并网逆变的基本原理。 二、实验设备 光伏并网逆变实验箱一台。 三、实验原理 1.1 光伏并网逆变实训系统组成 光伏逆变器是一种由半导体器件组成的电力调整装置,主要用于把直流电力转换成交流电力。 光伏并网逆变系统主要由升压回路和全桥逆变回路组成。 1、升压回路:升压回路包括BOOST升压电路、推挽升压电路以及桥式整流电路。光伏组件输出电压(低压)经过BOOST升压电路和推挽升压电路之后变为高频高压交流电压,再经过桥式整流电路变为高压直流电压,为后级桥式逆变电路提供直流电压。 2、全桥逆变回路:高压直流电压经过全桥逆变电路后变为工频的交流电压输出给电网。 1.2 并网逆变器原理 逆变器将直流电转化为交流电,若直流电压较低,则通过交流变压器升压,即得到标准交流电压和频率。对大容量的逆变器,由于直

流母线电压较高,交流输出一般不需要变压器升压即能达到220V,在中、小容量的逆变器中,由于直流电压较低,如12V、24V,就必须设计升压电路。 中、小容量逆变器一般有推挽逆变电路、全桥逆变电路和高频升压逆变电路三种。推挽电路将升压变压器的中性插头接于正电源,两只功率管交替工作,输出得到交流电力,由于功光伏并网逆变器率晶体管共地边接,驱动及控制电路简单,另外由于变压器具有一定的漏感,可限制短路电流,因而提高了电路的可靠性。其缺点是变压器利用率低,带动感性负载的能力较差。 全桥逆变电路克服了推挽电路的缺点,功率晶体管调节输出脉冲宽度,输出交流电压的有效值即随之改变。由于该电路具有续流回路,即使对感性负载,输出电压波形也不会畸变。该电路的缺点是上、下桥臂的功率晶体管不共地,因此必须采用专门驱动电路或采用隔离电源。另外,为防止上、下桥臂发生共同导通,必须设计先关断后导通电路,即必须设置死区时间,其电路结构较复杂。

数据结构与算法实验报告册

. . 河南工程学院 理学院学院 实验报告 (数据结构与算法) 学期: 课程: 专业: 班级: 学号: 姓名: 指导教师:

. . 目录 实验一线性表1(顺序表及单链表的合并) (1) 实验二线性表2(循环链表实现约瑟夫环) (1) 实验三栈和队列的应用(表达式求值和杨辉三角) (1) 实验四赫夫曼编码 实验五最小生成树 (1) 实验六排序算法

. . 实验一线性表1 一、实验学时:2学时 二、实验目的 1.了解线性表的逻辑结构特性是数据元素之间存在着线性关系。在计算机中 表示这种关系的两类不同的存储结构是顺序存储结构和链式存储结构。 2.熟练掌握这两类存储结构的描述方法以及线性表的基本操作在这两种存储 结构上的实现。 三、实验内容 1. 编写程序,实现顺序表的合并。 2. 编写程序,实现单链表的合并。 四、主要仪器设备及耗材 硬件:计算机一台 软件:VC++ 6.0,MSDN2003或者以上版本 五、算法设计 1. 顺序表合并的基本思想 程序流程图: 2. 单链表合并的基本思想 程序流程图 六、程序清单

. 七、实现结果 .

. 八、实验体会或对改进实验的建议.

. . 实验二线性表2 一、实验学时:2学时 二、实验目的 1.了解双向循环链表的逻辑结构特性,理解与单链表的区别与联系。 2.熟练掌握双向循环链表的存储结构以及基本操作。 三、实验内容 编写程序,采用循环链表实现约瑟夫环。 设有编号为1,2,……,n的n(n>0)个人围成一个圈,从第1个人开始报数,报到m时停止报数,报m的人出圈,再从他的下一个人起重新报数,报到m时停止报数,报m的出圈,……,如此下去,直到所有人全部出圈为止。当任意给定n和m后,设计算法求n个人出圈的次序。 四、主要仪器设备及耗材 硬件:计算机一台 软件:VC++ 6.0,MSDN2003或者以上版本 五、算法设计 约瑟夫环实现的基本思想 程序流程图: 六、程序清单

数据结构实验报告全集

数据结构实验报告全集 实验一线性表基本操作和简单程序 1.实验目的 (1)掌握使用Visual C++ 上机调试程序的基本方法; (2)掌握线性表的基本操作:初始化、插入、删除、取数据元素等运算在顺序存储结构和链表存储结构上的程序设计方法。 2.实验要求 (1)认真阅读和掌握和本实验相关的教材内容。 (2)认真阅读和掌握本章相关内容的程序。 (3)上机运行程序。 (4)保存和打印出程序的运行结果,并结合程序进行分析。 (5)按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果 实验代码: 1)头文件模块 #include >验目的 掌握顺序栈的基本操作:初始化栈、判栈空否、入栈、出栈、取栈顶数据元素等运算以及程序实现方法。 2.实验要求 (1)认真阅读和掌握和本实验相关的教材内容。 (2)分析问题的要求,编写和调试完成程序。 (3)保存和打印出程序的运行结果,并分析程序的运行结果。 3.实验内容 利用栈的基本操作实现一个判断算术表达式中包含圆括号、方括号是否正确配对的程序。具体完成如下:

(1)定义栈的顺序存取结构。 (2)分别定义顺序栈的基本操作(初始化栈、判栈空否、入栈、出栈等)。 (3)定义一个函数用来判断算术表达式中包含圆括号、方括号是否正确配对。其中,括号配对共有四种情况:左右括号配对次序不正确;右括号多于左括号;左括号多于右括号;左右括号匹配正确。 (4)设计一个测试主函数进行测试。 (5)对程序的运行结果进行分析。 实验代码: #include < > #define MaxSize 100 typedef struct { int data[MaxSize]; int top; }SqStack;

光伏并网逆变器控制与仿真设计

光伏并网逆变器控制与仿真设计 为了达到提高光伏逆变器的容量和性能目的,采用并联型注入变换技术。根据逆变器结构以及光伏发电阵电流源输出的特点,选用工频隔离型光伏并网逆变器结构,并在仿真软件PSCAD中搭建光伏电池和逆变器模型,最后通过仿真与实验验证了理论的正确性和控制策略的可行性。 ?近年来,应用于可再生能源的并网变换技术在电力电子技术领域形成研究热点。并网变换器在太阳能光伏、风力发电等可再生能源分布式能源系统中具有广阔发展前景。太阳能、风能发电的重要应用模式是并网发电,并网逆变技术是太阳能光伏并网发电的关键技术。在光伏并网发电系统中所用到的逆变器主要基于以下技术特点:具有宽的直流输入范围;具有最大功率跟踪(MPPT)功能;并网逆变器输出电流的相位、频率与电网电压同步,波形畸变小,满足电网质量要求;具有孤岛检测保护功能;逆变效率高达92%以上,可并机运行。逆变器的主电路拓扑直接决定其整体性能。因此,开发出简洁、高效、高性价比的电路拓扑至关重要。 ?1 逆变器原理 ?该设计为大型光伏并网发电系统,据文献所述,一般选用工频隔离型光伏并网逆变器结构,如图1所示。光伏阵列输出的直流电由逆变器逆变为交流电,经过变压器升压和隔离后并入电网。光伏并网发电系统的核心是逆变器,而电力电子器件是逆变器的基础,虽然电力电子器件的工艺水平已经得到很大的发展,但是要生产能够满足尽量高频、高压和低EMI的大功率逆变器时仍有很大困难。所以对大容量逆变器拓扑进行研究是一种具有代表性的解决方案。作为太阳能光伏阵列和交流电网系统之间的能量变换器,其安全性,可靠性,逆变效率,制造成本等因素对于光伏逆变器的发展有着举足轻

数据结构与算法基础

数据结构与算法基础 一.判断题: 1.数据元素是数据的最小单位。 2.数据结构是带有结构的数据元素的集合。 3.数据结构、数据元素、数据项在计算机中的映像(或表示)分别称为存储结构、结点、数据域。 4.数据项是数据的基本单位。 5.数据的逻辑结构是指各数据元素之间的逻辑关系,是用户按使用需要而建立的。 6.数据的物理结构是指数据在计算机内实际的存储形式。 7.算法和程序没有区别,所以在数据结构中二者是通用的。 答案: 1.错误 2.正确 3.正确 4.错误 5.正确 6.正确 7.错误 二. 数据结构是研究数据的 A 和 B 以及它们之间的相互关系,并对这种结构定义相应的 C ,设计出相应的 D ,而确保经过这些运算后所得到的新结构是 E 结构类型。 供选择答案: A、B:a理想结构b抽象结构c物理结构d逻辑结构 C、D、E:a运算b算法c结构d规则e现在的f原来的 答案: A:cB;dC:aD:bE:f 三.从供选择的答案中选取正确的答案填在下面叙述中的横线上: 1. A 是描述客观事物的数字、字符以及所能输入到计算机中并被计算机程序加工处理的符号的集合。 2. B 是数据的基本单位,即数据集合中的个体。有时一个 B 由若干个___C____组成,在这种情况下,称 B 为记录。 C 是数据的最小单位。而由记录所组成的线性表为 D 。 3. E 是具有相同特性的数据元素的集合,是数据的子集。 4. F是带有结构特性数据元素的集合。 5. 被计算机加工的数据元素不是孤立无关的,它们彼此之间一般存在着某种联系。通常将数据元素的这种关系称为G。 6. 算法的计算量的大小称为计算的H。 供选择的答案: A-F:a数据元素b符号c记录d文件e数据f数据项g数据对象h关键字i数据结构

并网实验1

实验一并网逆变实验箱整体认知 一、实验目的 1、熟悉实验箱各个模块; 2、了解并网逆变基本原理。 二、实验设备 1、并网逆变器实验箱; 2、示波器; 3、万用表。 三、实验准备 以下几点是每次实验前所要注意的。 1、先用万用表测量蓄电池电压,电压为DC11V-13V。电压低时需要对蓄电 池充电; 2、实验箱上两个开关处于关关状态; 3、接上负载灯泡,连接实验箱外部电源,实验箱上4只电表开始显示,灯 泡亮起,负载风扇也开始工作。启动开关和并网开关关断时只有直流电 流表显示当前电池电压,其余3个显示0; 4、打开启动开关,并网指示灯开始闪烁,未检测到市电,功率状态灯常亮, 逆变器不输出;打开并网开关,并网指示灯继续闪烁,10秒内检测到已 连接市电并跟踪,并网指示灯常亮。直流电流表显示蓄电池工作电流, 交流电压表显示逆变电压,交流电流表显示输出电流。 四、实验内容 1、前级升压驱动小板。如图1所示,小板共9个引脚,从下到上分别为1、 2……9脚,主要产生前级MOS管的升压PWM驱动和检测蓄电池输出电流 等。 图1 前级升压驱动小板

2、频率检测与相位跟踪小板。如图2所示,小板共有10个引脚,从上到下 分别为1、2……10脚,主要检测有无市电接入、调节逆变器输出、时刻跟踪市电相位。 图2 频率检测与相位跟踪小板 3、后级输出驱动板。如图3所示,小板共有12个引脚,从左到右分别为1、 2……12脚,主要驱动和保护后级功率输出MOS管。 4、前级驱动MOS管。如图4所示,共有4个MOS管,主要以大电流驱动变 压器。 图4 前级驱动MOS管 5、后级输出MOS管。如图5所示,共有4个MOS管,主要输出产生正弦逆 变电源。 图5 后级输出MOS管 6、变压器次级输出电路。如图6所示,次级输出共有6个元器件组成,2 个肖特基整流二极管,1个谐振电容、1个谐振电感和2个整流功率二极管,此电路电压最高。

全国计算机二级第1章数据结构与算法

考点1 算法的复杂度 【考点精讲】 1.算法的基本概念 计算机算法为计算机解题的过程实际上是在实施某种算法。 算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。 2.算法复杂度 算法复杂度包括时间复杂度和空间复杂度。 名称 描述 时间复杂度 是指执行算法所需要的计算工作量 空间复杂度 是指执行这个算法所需要的内存空间 考点2 逻辑结构和存储结构 【考点精讲】 1.逻辑结构 数据的逻辑结构是对数据元素之间的逻辑关系的描述,它可以用一个数据元素的集合和定义在此集合中的若干关系来表示。数据的逻辑结构有两个要素:一是数据元素的集合,通常记为D;二是D上的关系,它反映了数据元素之间的前后件关系,通常记为R。一个数据结构可以表示成 B=(D,R) 其中B表示数据结构。为了反映D中各数据元素之间的前后件关系,一般用二元组来表示。例如,如果把一年四季看作一个数据结构,则可表示成 B =(D,R) D ={春季,夏季,秋季,冬季} R ={(春季,夏季),(夏季,秋季),(秋季,冬季)} 2.存储结构 数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。 由于数据元素在计算机存储空间中的位置关系可能与逻辑关系不同,因此,为了表示存放在计算机存储空间中的各数据元素之间的逻辑关系(即前后件关系),在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息。 一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接等存

储结构。 顺序存储方式主要用于线性的数据结构,它把逻辑上相邻的数据元素存储在物理上相邻的存储单元里,结点之间的关系由存储单元的邻接关系来体现。 链式存储结构就是在每个结点中至少包含一个指针域,用指针来体现数据元素之间逻辑上的联系。 考点3 线性结构和非线性结构 【考点精讲】 根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。如果一个非空的数据结构满足下列两个条件: (1)有且只有一个根结点; (2)每一个结点最多有一个前件,也最多有一个后件。 则称该数据结构为线性结构。线性结构又称线性表。在一个线性结构中插入或删除任何一个结点后还应是线性结构。栈、队列、串等都线性结构。 如果一个数据结构不是线性结构,则称之为非线性结构。数组、广义表、树和图等数据结构都是非线性结构。 考点4 栈 【考点精讲】 1.栈的基本概念 栈(stack)是一种特殊的线性表,是限定只在一端进行插入与删除的线性表。在栈中,一端是封闭的,既不允许进行插入元素,也不允许删除元素;另一端是开口的,允许插入和删除元素。通常称插入、删除的这一端为栈顶,另一端为栈底。当表中没有元素时称为空栈。栈顶元素总是后被插入的元素,从而也是最先被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。 栈是按照“先进后出”或“后进先出”的原则组织数据的。例如,枪械的子弹匣就可以用来形象的表示栈结构。子弹匣的一端是完全封闭的,最后被压入弹匣的子弹总是最先被弹出,而最先被压入的子弹最后才能被弹出。 2.栈的顺序存储及其运算 栈的基本运算有三种:入栈、退栈与读栈顶元素。 (1)入栈运算:入栈运算是指在栈顶位置插入一个新元素。 (2)退栈运算:退栈是指取出栈顶元素并赋给一个指定的变量。 (3)读栈顶元素:读栈顶元素是指将栈顶元素赋给一个指定的变量。 考点5 队列 【考点精讲】 1.队列的基本概念 队列是只允许在一端进行删除,在另一端进行插入的顺序表,通常将允许删除的这一端称为队头,允许插入的这一端称为队尾。 当表中没有元素时称为空队列。 队列的修改是依照先进先出的原则进行的,因此队列也称为先进先出的线性表,或者后进后出的线性表。例如:火车进遂道,最先进遂道的是火车头,最后是火车尾,而火车出遂道的时候也是火车头先出,最后出的是火车尾。若有队列: Q =(q1,q2,…,qn) 那么,q1为队头元素(排头元素),qn为队尾元素。队列中的元素是按照q1,q2,…,qn 的顺序进入的,退出队列也只能按照这个次序依次退出,即只有在q1,q2,…,qn-1 都退队之后,qn才能退出队列。因最先进入队列的元素将最先出队,所以队列具有先进先出的

《算法与数据结构》实验报告(2014) 内蒙古大学

《算法与数据结构》实验报告 班级____________ 姓名___________ 学号_____________ 实验1:线性表的应用(6学时) [问题描述] 一个线性表A中包含有三类字符:数字字符、字母字符、其他字符。试写一个函数实现对线性表A的拆分,使得线性表A、B、C分别各自指向同一类字符。 [实验目的] (1)熟练掌握链表的基本操作; (2)运用链表解决实际问题。 [实验内容及要求] (1)首先通过输入字符建立线性表A; (2)在拆分时,必须使用原表A的结点空间,不能额外创建新结点; (3)拆分后,原表A指向数字字符,且其内容的前后次序与原表中的前后次序必须一致,新的表B指向字母字符,新的表C指向其他字符。其中要求删除B中 的重复结点(如“abbcdexec”,变为“abcdex”)。 (4)分别输出表A、B(删除重复结点后的内容)、C的内容; (5)判断拆分后的表A是否是中心对称的(如123321或12321都是中心对称的),若是,则输出1,否则输出0。 [示例输入/输出] 示例输入: 1aabccd2e3f(!3c<2g1> (用于创建原表A的输入字符串) 示例输出: 123321 (拆分后表A的内容) abcdef (拆分后表B的内容) (!<> (拆分后表C的内容) 1 (拆分后表A是中心对称的)

《算法与数据结构》实验报告 班级____________ 姓名___________ 学号_____________ 实验2:表达式求值(6学时) [问题描述] 表达式求值是计算机实现程序设计语言中的基本问题之一,也是栈应用的一个典型例子,通过本实验,对输入的一个表达式进行求值。 [实验目的] (1)掌握栈的应用; (2)掌握算符优先表达式求值的算法; (3)掌握字符串处理和数值的转换; (4)练习上述知识的综合应用。 [实验内容及要求] (1)表达式以字符串形式输入。如:12*(12.4+20.15)/25,结果以字符串形式输出(保留小数点后2位)。 (2)运算数是实数,运算符有+ - * / ,带括号,常用函数有:开方sqr()、正弦sin() 、余弦cos()、四舍五入取整rd()。函数的优先级高于+ - * /。 (3)能够有效判别表达式的输入格式是否有误(如缺失操作数、括号不匹配、函数名错误等),若输入错误,输出为“error!”。 [示例输入/输出] 示例输入: 12*(12.4+20.15)/25 15.4/(2-sin(5.12)*)+21 示例输出: 15.62 error!

相关文档
最新文档