当前位置:文档之家› 西安交通大学数据结构课外实验报告

西安交通大学数据结构课外实验报告

西安交通大学数据结构课外实验报告
西安交通大学数据结构课外实验报告

数据结构课外实验报告

1背包问题

1.1问题描述

假设有一个能装入总体积为T的背包和n件体积分别为w1,w2,…wn的物品,能否从n 件物品中挑选若干件恰好装满背包,即使w1+w2+…+wm=T,要求找出所有满足上述条件的解。

例如:当T=10,各件物品的体积{1,8,4,3,5,2}时,可找到下列4组解:

(1,4,3,2)

(1,4,5)

(8,2)

(3,5,2)

1.2算法设计

利用回溯法的设计思想来解决背包问题。首先,将物品排成一列,然后,顺序选取物品装入背包,若已选取第i件物品后未满,则继续选取第i+1件,若该件物品“太大”不能装入,则弃之,继续选取下一件,直至背包装满为止。

如果在剩余的物品中找不到合适的物品以填满背包,则说明“刚刚”装入的物品“不合适”,应将它取出“弃之一边”,继续再从“它之后”的物品中选取,如此重复,直到求得满足条件的解,或者无解。

由于回溯求解的规则是“后进先出”,自然要用到“栈”。

同时,因为要使用回溯法,所以采取一个data数组来记录入栈的数据在原本的数组中的位置信息,从而可以保证回溯时回溯到恰当的位置之上。

1.3源代码

// beibao.cpp : 定义控制台应用程序的入口点。

#include"stdafx.h"

#include

#define size 20

using namespace std;

class stacks

{

public:

int data[size];

int top;

}stack;

int main()

{

int w[size];

int v;

int k=0;

int j=1;

int number;

int s=0;

cout<<"please input the number of the objects:"<

cin>>number;

cout<<"please input the volume of the objects:"<

{

cin>>w[i];

s=s+w[i];

}

cout<<"please input the limit of the volume:"<>v;

If(v<0||v>s)

cout<<"wrong"<

for(int i=0;i

stack.data[i]=0;

stack.top=0;

do

{

while(v>0&&k

{

if(v>=w[k])

{

stack.data[stack.top]=k;

stack.top++;

v-=w[k];

}

k++;

}

if(v==0)

{

cout<<"the "<

for (int i=0;i

{

cout<

}

j++;

cout<

}

--stack.top;

k=stack.data[stack.top];

stack.data[stack.top]=0;

v+=w[k];

k++;

}

while(!(stack.top==0&&k==number));

getchar();

return 0;

}

1.4运行结果

2农夫过河问题

2.1问题描述

一个农夫带着一只狼、一只羊和一棵白菜,身处河的南岸。他要把这些东西全部运到北岸。他面前只有一条小船,船只能容下他和一件物品,另外只有农夫才能撑船。如果农夫在场,则狼不能吃羊,羊不能吃白菜,否则狼会吃羊,羊会吃白菜,所以农夫不能留下羊和白菜自己离开,也不能留下狼和羊自己离开,而狼不吃白菜。请求出农夫将所有的东西运过河的方案。

2.2算法设计

求解这个问题的简单方法是一步一步进行试探,每一步搜索所有可能的选择,对前一步合适的选择后再考虑下一步的各种方案。要模拟农夫过河问题,首先需要对问题中的每个角色的位置进行描述。可用4位二进制数顺序分别表示农夫、狼、白菜和羊的位置。用0表在南岸,1表示在北岸。例如,整数5 (0101)表示农夫和白菜在南岸,而狼和羊在北岸。

现在问题变成:从初始的状态二进制0000(全部在河的南岸)出发,寻找一种全部由安全状态构成的状态序列,它以二进制1111(全部到达河的北岸)为最终目标。总状态共16种(0000到1111),(或者看成16个顶点的有向图)可采用广度优先或深度优先的搜索策略---得到从0000到1111的安全路径。

首先用一个函数来保证这16种状态之中是否是安全的,可以知道,其中的十种情况是安全的,将其记录下来。然后,再设计另一个函数,来判断其中的两种状态是否可以在一步中完成,如果可以返回1,不可以返回0。就可以通过这样的方式建立一个十乘十的邻接矩阵,如果两种状态可以一步完成,那么就在邻接矩阵中的恰当位置添上1,否则不变,仍旧

为0。最后,用两种方式来搜索路径,从而得到两种结果。

2.3源代码

// farmer.cpp : 定义控制台应用程序的入口点。

#include"stdafx.h"

#include

#include

#define VEX_NUM 10

using namespace std;

typedef struct

{

int Farmer,Wolf,Sheep,Veget;

}VexType;

typedef struct

{

int vexnum,e;

VexType vexs[VEX_NUM];

int adj[VEX_NUM][VEX_NUM];

}AdjGraph;

int visited[VEX_NUM];

int path[VEX_NUM];

int safe(int F,int W,int S,int V)

{

if(F!=S&&(W==S||S==V))

return 0;

else

return 1;

}

int connected(AdjGraph & G,int i,int j)

{

int k;

k=0;

if(G.vexs[i].Wolf!=G.vexs[j].Wolf)

k++;

if(G.vexs[i].Sheep!=G.vexs[j].Sheep)

k++;

if(G.vexs[i].Veget!=G.vexs[j].Veget)

k++;

if(G.vexs[i].Farmer!=G.vexs[j].Farmer&&k<=1)

return 1;

else

return 0;

}

int locate(AdjGraph & G,int F,int W,int S,int V)

{

int i;

for(i=0;i

if(G.vexs[i].Farmer==F&&G.vexs[i].Wolf==W&&G.vexs[i].Sheep==S&&G.vexs[i].Veget==V) return i;

return -1;

}

void Create(AdjGraph & G)

{

int i,j,F,W,S,V;

i=0;

for(F=0;F<=1;F++)

for(W=0;W<=1;W++)

for(S=0;S<=1;S++)

for(V=0;V<=1;V++)

if(safe(F,W,S,V)==1)

{

G.vexs[i].Farmer=F;

G.vexs[i].Wolf=W;

G.vexs[i].Sheep=S;

G.vexs[i].Veget=V;

i++;

}

G.vexnum=i;

for(i=0;i

for(j=0;j

if(connected(G,i,j)==1)

G.adj[i][j]=G.adj[i][j]=1;

else

G.adj[i][j]=G.adj[j][i]=0;

return;

}

void printpath(AdjGraph & G,int u,int v)

{

int k=u;

while(k!=v)

{

printf("(%d,%d,%d,%d)\n",G.vexs[k].Farmer,G.vexs[k].Wolf,G.vexs[k].Sheep,G.vexs[k]. Veget);

k=path[k];

}

printf("(%d,%d,%d,%d)\n",G.vexs[k].Farmer,G.vexs[k].Wolf,G.vexs[k].Sheep,G.vexs[k].

Veget);

}

void DFSpath(AdjGraph & G,int u,int v)

{

int ob;

visited[u]=1;

for(ob=0;ob

if(G.adj[u][ob]==1&&visited[ob]==0&&visited[v]==0)

{

path[u]=ob;

DFSpath(G,ob,v);

}

}

void DFSpath2(AdjGraph & G,int u,int v)

{

int ob;

visited[u]=1;

for(ob=G.vexnum-1;ob>=0;ob--)

if(G.adj[u][ob]==1&&visited[ob]==0&&visited[v]==0)

{

path[u]=ob;

DFSpath2(G,ob,v);

}

}

void main()

{

int i,j;

AdjGraph graph1;

Create(graph1);

for(i=0;i

visited[i]=0;

i=locate(graph1,0,0,0,0);

j=locate(graph1,1,1,1,1);

DFSpath(graph1,i,j);

if(visited[j]==1)

{

printf("0代表南岸,1代表北岸\n四个整数依次代表\n(农夫狼羊白菜)\n");

printpath(graph1,i,j);

}

for(i=0;i

visited[i]=0;

for(i=0;i

path[i]=0;

AdjGraph graph2;

Create(graph2);

i=locate(graph2,0,0,0,0);

j=locate(graph2,1,1,1,1);

DFSpath2(graph2,i,j);

if(visited[j]==1)

{

printf("0代表南岸,1代表北岸\n四个整数依次代表\n(农夫狼羊白菜)\n");

printpath(graph2,i,j);

}

getchar();

return;

}

2.4运行结果

3八皇后问题

3.1问题描述

设在初始状态下在国际象棋的棋盘上没有任何棋子(这里的棋子指皇后棋子)。然后顺序在第1行,第2行……第8行上布放棋子。在每一行中共有8个可选择的位置,但在任一时刻棋盘的合法布局都必须满足3个限制条件(1)任意两个棋子不得放在同一行(2)任意两个棋子不得放在同一列上(3)任意棋子不得放在同一正斜线和反斜线上。

3.2算法设计

在第i行布放棋子时,从第1列到第8列逐列考察。当在第i行第j列布放棋子时,需要考察布放棋子后在行方向、列方向、正斜线和反斜线方向上的布局状态是否合法,若该棋子布放合法,再递归求解在第i+1行布放棋子;若该棋子布放不合法,移去这个棋子,恢复

布放该棋子前的状态,然后再试探在第i行第j+1列布放棋子。

用不同的数组来表示正斜线,负斜线,横线,竖线上是否是安全状态。

3.3源代码

// queens.cpp : 定义控制台应用程序的入口点。

#include"stdafx.h"

#include

using namespace std;

int data[8][8];

int a[8];

int b[15];

int c[15];

int number=0;

void eightQueens( int );

void output( const int [][8], int );

int main()

{

int i,j;

for(i=0;i<15;++i)

b[i]=c[i]=0;

for(i=0;i<8;++i )

{

a[i]=0;

for(j=0;j<8;++j)

data[i][j]=0;

}

eightQueens( 0 );

cout << "/ncount = " << number << endl;

return 0;

}

void eightQueens(int line)

{

if(line==8)

{

output(data, 8);

cout << endl;

return;

}

for(int column=0;column<8;++column)

{

if(a[column]==0&&b[line-column+7]==0&&c[line+column]==0)

{

data[line][column]=1;

a[column]=1;

b[line-column+7]=1;

c[line+column]=1;

eightQueens(line+1);

data[line][column]=0;

a[column]=0;

b[line-column+7]=0;

c[line+column]=0;

}

}

}

void output(const int data[][8], int size) {

for(int i=0;i

{

for(int j=0;j

cout<

cout<

}

++number;

getchar();

}

3.4运行结果

4二叉排序树

4.1问题描述

分别采用二叉链表和顺序表作存储结构,实现对二叉排序树的操作。

用二叉链表作存储结构实现二叉排序树。

1)以回车符(‘\n’)为输入结束标志,输入数列L,生成一棵二叉排序树T;

2)对二叉排序树T作中序遍历,输出结果;

3)计算二叉排序树T查找成功的平均查找长度,输出结果;

4)输入元素x,查找二叉排序树T,若存在含x的结点,则删除该结点,并作中序遍历(执行操作2);否则,输出信息“无x”;

4.2算法设计

按照二叉排序树的规则来对元素进行插入的操作,小于向左,大于向右。用deep这个量,来记录下每个结点的高度。所有结点的高度之和,取平均数,就可以得到平均的查找长度。输出结果的顺序由中序遍历实现。

4.3源代码

// chazhao.cpp : 定义控制台应用程序的入口点。

#include"stdafx.h"

#include

int deep=1;

using namespace std;

class node

{

public:

node(int i):data(i),left(NULL),right(NULL){}

void inorder(node *&root)

{

if(root!=NULL)

{

inorder(root->left);

cout<data<<' ';

inorder(root->right);

}

}

void insert(node *&ptr,int item)

{

if(ptr==NULL)

{

deep++;

ptr=new node(item);

}

else if(itemdata)

{

deep++;

insert(ptr->left,item);

}

else

{

deep++;

insert(ptr->right,item);

}

}

node *find(node *&ptr,int item)

{

if(ptr==NULL)

return NULL;

if(ptr->data==item)

return ptr;

else if(itemdata)

find(ptr->left,item);

else find(ptr->right,item);

}

node *&findy(node *&ptr,int item)

{

if(ptr->data==item)

return ptr;

else if(itemdata)

findy(ptr->left,item);

else findy(ptr->right,item);

}

node* rl()

{

return left;

}

node* rr()

{

return right;

}

void dele(node *&ptr)

{

if(ptr->rl()==NULL&&ptr->rr()==NULL)

ptr=NULL;

else if(ptr->rr()==NULL)

ptr=ptr->rl();

else

ptr=ptr->rr();

}

private:

int data;

node *left;

node *right;

};

int main()

{

int t,i=0,j;

float result=0;

cout<<"please input the number of the array:";

cin>>t;

cout<<"please input "<

cin>>j;

node *x=new node(j);

for(;i

{

cin>>j;

x->insert(x,j);

}

cout<<"the result of inordering is:";

x->inorder(x);

cout<<"\nthe average length of inordering:"<

result=(float)deep/(float)t;

cout<

cout<<"\nplease input the number which should be operated:"<

cin>>j;

while(j!=-1)

{

node *t=x->find(x,j);

if(t!=NULL)

{

node *&y=x->findy(x,j);

x->dele(y);

cout<<"the result of inordering is:";

x->inorder(x);

}

else

cout<<"no"<

cout<<"\nplease input the number which should be operated:"<

cin>>j;

}

return 0;

}

4.4运行结果

5心得

本实验实现了数据结构中三大结构的应用,并且将其运用于较为实际的问题之中。第一题中采用的是栈,背包问题用栈实现可以很好地完成背包物品的放入和拿出的操作。第二题中采用的结构是图,将农夫、狼、羊和白菜四个物品在南北岸的几种安全状态来看作图的顶点,如果能够一步完成则看作为这两个点之间有连线,最后就可以找到合理的过河方式。第三题主要用的是数组,用数组来保证安全与不安全,只要在适当的地方填上零一数字,就可以完成题目要求。第四题中,使用的是三大结构中的最后一个结构,树。二叉排序树有着其独特的特点,可以通过其特定的形态来做到具体的实现。

由此次实验,数据结构理论上的东西得到了实现,理论的知识有了实际的意义。同时,也知道了数据结构的重要性,以及在课上学习内容的不够。所以,虽然说数据结构已经结课,但是还是需要更加深入的继续学习才行。

数据结构实验报告

2013-2014-1学期 《数据结构》实验报告 专业:信息管理与信息系统 班级: 姓名: 学号: 完成日期:2013.12.01

实验名称:二叉树的创建与遍历 一、实验目的 建立一棵二叉树,并对其进行遍历(先序、中序、后序),打印输出遍历结果。 二、实验要求 1、建立一棵用二叉链表方式存储的二叉树,并对其进行遍历(先序、中序和后序),打印输出遍历结果。 2、从键盘接受扩展先序序列,以二叉链表作为存储结构,建立二叉树,并将遍历结果打印输出。 三、实验步骤(包括所选择的二叉树的创建算法和常用三种遍 历算法的说明、完整的程序代码及必要的注释。) 1、用二叉链表创建二叉树: ①输入根结点值;②若左子树不空,则输入左子树,否则输入一个结束符‘#’;③若右子树不空,则输入右子树,否则输入一个结束符‘#’。 2、遍历该二叉树 (1) 先序遍历(DLR) 若二叉树为空,则结束返回。否则:①访问根结点;②先序遍历左子树;③先序遍历右子树。 (2) 中序遍历(LDR) 若二叉树为空,则结束返回。否则:①中序遍历左子树;②访问根结点;③中序遍历右子树。 (3) 后序遍历(LRD) 若二叉树为空,则结束返回。否则:①后序遍历

左子树;②后序遍历右子树;③访问根结点。 3、程序代码: #include #include #include #define NULL 0 typedef struct BiTNode { char data; struct BiTNode *Lchild,*Rchild; }BiTNode,*BiTree; BiTree Create(BiTree T) { char ch; ch=getchar(); if(ch=='#') T=NULL; else { if(!(T=(BiTNode *)malloc(sizeof(BiTNode)))) printf("Error!"); T->data=ch; T->Lchild=Create(T->Lchild); T->Rchild=Create(T->Rchild); } return T; } void Preorder(BiTree T) { if(T) { printf("%c",T->data); Preorder(T->Lchild); Preorder(T->Rchild); } } void zhongxu(BiTree T) { if(T) { zhongxu(T->Lchild); printf("%c",T->data);

西安交通大学接口技术实验报告

西安交通大学 微型计算机接口技术实验报告 班级:物联网 姓名: 学号:

实验一基本I/O扩展实验 一、实验目的 1、了解 TTL 芯片扩展简单 I/O 口的方法,掌握数据输入输出程序编制的方法; 2、对利用单片机进行 I/O 操作有一个初步体会。 二、实验内容 74LS244 是一种三态输出的8 总线缓冲驱动器,无锁存功能,当G 为低电平时,Ai 信号传送到Yi,当为高电平时,Yi 处于禁止高阻状态。 74LS273 是一种8D 触发器,当CLR 为高电平且CLK 端电平正跳变时,D0——D7 端数据被锁存到8D 触发器中。 实验原理图: 三、实验说明 利用74LS244 作为输入口,读取开关状态,并将此状态通过74LS273 再驱动发光二极管显示出来,连续运行程序,发光二极管显示开关状态。

四、实验流程图 五、实验连线 1、244的cs连接到CPU地址A15,Y7—Y0连接开关K1-K8; 2、273的CS连接到CPU地址A14,Q7-Q0连接到发光二极管L1-L8; 3、该模块的WR,RD连接CPU的WR,RD,数据线AD7-AD0,地址线A7-A0分别与CPU的数据线AD7-AD0,地址线A7-A0相连接。

六、程序源代码(略) 七、实验结果 通过开关K01 到K08 可以对应依次控制LED 灯的L1 到L8 ,即当将开关Ki 上拨时,对应的Li 被点亮,Ki 下拨时,对应的Li熄灭。 此外,如果将开关拨到AAH 时,将会产生LED 灯左移花样显示;如果开关拨到55H 时,将会产生LED 灯右移花样显示。 七、实验心得 通过本次实验,我了解了TTL 芯片扩展简单I/O 口的方法,同时也对数据输入输出程序编制的方法有一定的了解与掌握,对利用单片机进行I/O 操作有一个初步体会,实验使我对自己在课堂上学的理论知识更加理解,同时也锻炼了我的动手操作能力。

数据结构实验报告格式

《数据结构课程实验》大纲 一、《数据结构课程实验》的地位与作用 “数据结构”是计算机专业一门重要的专业技术基础课程,是计算机专业的一门核心的关键性课程。本课程较系统地介绍了软件设计中常用的数据结构以及相应的存储结构和实现算法,介绍了常用的多种查找和排序技术,并做了性能分析和比较,内容非常丰富。本课程的学习将为后续课程的学习以及软件设计水平的提高打下良好的基础。 由于以下原因,使得掌握这门课程具有较大的难度: (1)内容丰富,学习量大,给学习带来困难; (2)贯穿全书的动态链表存储结构和递归技术是学习中的重点也是难点; (3)所用到的技术多,而在此之前的各门课程中所介绍的专业性知识又不多,因而加大了学习难度; (4)隐含在各部分的技术和方法丰富,也是学习的重点和难点。 根据《数据结构课程》课程本身的技术特性,设置《数据结构课程实验》实践环节十分重要。通过实验实践内容的训练,突出构造性思维训练的特征, 目的是提高学生组织数据及编写大型程序的能力。实验学时为18。 二、《数据结构课程实验》的目的和要求 不少学生在解答习题尤其是算法设计题时,觉得无从下手,做起来特别费劲。实验中的内容和教科书的内容是密切相关的,解决题目要求所需的各种技术大多可从教科书中找到,只不过其出现的形式呈多样化,因此需要仔细体会,在反复实践的过程中才能掌握。 为了帮助学生更好地学习本课程,理解和掌握算法设计所需的技术,为整个专业学习打好基础,要求运用所学知识,上机解决一些典型问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握所用到的一些技术。数据结构中稍微复杂一些的算法设计中可能同时要用到多种技术和方法,如算法设计的构思方法,动态链表,算法的编码,递归技术,与特定问题相关的技术等,要求重点掌握线性链表、二叉树和树、图结构、数组结构相关算法的设计。在掌握基本算法的基础上,掌握分析、解决实际问题的能力。 三、《数据结构课程实验》内容 课程实验共18学时,要求完成以下六个题目: 实习一约瑟夫环问题(2学时)

2019年西安交通大学814数据结构真题回忆

31842-2019年西安交通大学814数据结 构真题回忆 814. 数据结构。选择五个。忘了 -大题avIl的题告诉11个数然后进行排序求平均长度 二大题哈希表公共溢出区告诉12个数然后求平均长度 三(1) 写图的邻接表结构 (2)对一个图进行dfs与bfs (3) prim算法 四编程题将一个链表进行逆置求时间复杂空间复杂 oS填空10个吧。忘了 问答题三个1、三个调度。然后进程挂起是靠那个调度完成 的为什么? 2、3、忘了。 大题一(1) 用ru调度进行22个关键数的页面置换(2) 设 计一个ru (用计数器和栈) 有标志位(我好像见过原题) 二pv 100个学生50台计算机两个学生必须--组才能去申 请一个电脑然后管理员才让他们进去。然后上机操作操作 完了要让老师检查。然后管理员才让走。 计算机组成原理。四道大题忘了 第一道大题告诉16位指令15-11指令10-8是寻址方式7- 5通用寄存器4-0是地址。有000是一次间接寻址001 010 011分布是寄存器间接寻址变址寻址相对寻址 第一问指令数量寄存器数量。还有多少种寻址方式 第二问问各个寻址的范围 第三问问一个指令的数据是多少。那个画成2进制然后是相 对寻址 第二道大题。10位阶补尾补各带一个符号位,第一问写正 数负数的最大值最小值 第二问写出x= (-23/32) *2^7与y= (23/32) *2^6 第三问x+y=? 第四问把第三问结果表示出来 915 [题型分布与分值] 选择10*2 判断5*2. 填空5*2 简答7道应该是15*2+16*1+7*4 编程题15*2+10*1 代码题1输入有限个xy。xy代表二伟空间一个点,寻找- 个最小矩形,包含所输入的所有点 要求输出该矩形左下顶点和右上的顶点2.判断一个字符串是否是回文串(其中有空格,需要排除空 格),第一问递归解决。第二问用栈解决

西安交大数字图像处理第二次实验报告

数字图像处理第二次作业

摘要 本次报告主要记录第二次作业中的各项任务完成情况。本次作业以Matlab 2013为平台,结合matlab函数编程实现对lena.bmp,elain1.bmp图像文件的相关处理:1.分别得到了lena.bmp 512*512图像灰度级逐级递减8-1显示,2.计算得到lena.bmp图像的均值和方差,3.通过近邻、双线性和双三次插值法将lena.bmp zoom到2048*2048,4. 把lena和elain 图像分别进行水平shear(参数可设置为1.5,或者自行选择)和旋转30度,并采用用近邻、双线性和双三次插值法zoom到2048*2048。以上任务完成后均得到了预期的结果。 1.把lena 512*512图像灰度级逐级递减8-1显示 (1)实验原理: 给定的lena.bmp是一幅8位灰阶的图像,即有256个灰度色。则K位灰阶图像中某像素的灰度值k(x,y)(以阶色为基准)与原图同像素的灰度值v(x,y)(以256阶色为基准)的对应关系为: 式中floor函数为向下取整操作。取一确定k值,对原图进行上式运算即得降阶后的k位灰阶图像矩阵。 (2)实验方法 首先通过imread()函数读入lena.bmp得到图像的灰度矩阵I,上式对I矩阵进行灰度降阶运算,最后利用imshow()函数输出显示图像。对应源程序为img1.m。 (3)处理结果 8灰度级

7灰度级 6灰度级 5灰度级

4灰度级 3灰度级 2灰度级

1灰度级 (4)结果讨论: 由上图可以看出,在灰度级下降到5之前,肉眼几乎感觉不出降阶后图像发生的变化。但从灰度级4开始,肉眼明显能感觉到图像有稍许的不连续,在灰度缓变区常会出现一些几乎看不出来的非常细的山脊状结构。随着灰度阶数的继续下降,图像开始出现大片的伪轮廓,灰度级数越低,越不能将图像的细节刻画出来,最终的极端情况是退化为只有黑白两色的二值化图像。由此可以得出,图像采样的灰度阶数越高,灰度围越大,细节越丰富,肉眼看去更接近实际情况。 2.计算lena图像的均值方差 (1)实验原理 对分辨率为M*N的灰度图像,其均值和方差分别为: (2)实验方法 首先通过imread()函数读入图像文件到灰度矩阵I中,然后利用 mean2函数和std2函数计算灰度矩阵(即图像)的均值和标准差,再由标准差平方得到方差。对应源程序:img1.m (3)处理结果 均值me =99.0512,标准差st =52.8776,方差sf =2.7960e+03。 (4)结果分析 图像的均值可反应图像整体的明暗程度,而方差可以反应图像整体的对比度情况,方差越大,图像的对比度越大,可以显示的细节就越多。 3.把lena图像用近邻、双线性和双三次插值法zoom到2048*2048; (1)实验原理 图像插值就是利用已知邻近像素点的灰度值来产生未知像素点的灰度值,以便由原始图

数据结构实验报告

数据结构实验报告 一.题目要求 1)编程实现二叉排序树,包括生成、插入,删除; 2)对二叉排序树进行先根、中根、和后根非递归遍历; 3)每次对树的修改操作和遍历操作的显示结果都需要在屏幕上用树的形状表示出来。 4)分别用二叉排序树和数组去存储一个班(50人以上)的成员信息(至少包括学号、姓名、成绩3项),对比查找效率,并说明在什么情况下二叉排序树效率高,为什么? 二.解决方案 对于前三个题目要求,我们用一个程序实现代码如下 #include #include #include #include "Stack.h"//栈的头文件,没有用上 typedefintElemType; //数据类型 typedefint Status; //返回值类型 //定义二叉树结构 typedefstructBiTNode{ ElemType data; //数据域 structBiTNode *lChild, *rChild;//左右子树域 }BiTNode, *BiTree; intInsertBST(BiTree&T,int key){//插入二叉树函数 if(T==NULL) { T = (BiTree)malloc(sizeof(BiTNode)); T->data=key; T->lChild=T->rChild=NULL; return 1; } else if(keydata){ InsertBST(T->lChild,key); } else if(key>T->data){ InsertBST(T->rChild,key); } else return 0; } BiTreeCreateBST(int a[],int n){//创建二叉树函数 BiTreebst=NULL; inti=0; while(i

数据结构与算法分析专题实验-西安交大-赵仲孟

西安交通大学 数据结构与算法课程实验 实验名称:数据结构与算法课程专题实验 所属学院:电信学院 专业班级:计算机32班 小组成员: 指导老师:赵仲孟教授 实验一背包问题的求解 1.问题描述 假设有一个能装入总体积为T的背包和n件体积分别为w1,w2,…w n的物品,能否从n件物品中挑选若干件恰好装满背包,即使w1+w2+…+w m=T,要求找出所有满足上述条件的解。 例如:当T=10,各件物品的体积{1,8,4,3,5,2}时,可找到下列4组解:

(1,4,3,2) (1,4,5) (8,2) (3,5,2)。 2.实现提示 可利用回溯法的设计思想来解决背包问题。首先,将物品排成一列,然后,顺序选取物品装入背包,若已选取第i件物品后未满,则继续选取第i+1件,若该件物品“太大”不能装入,则弃之,继续选取下一件,直至背包装满为止。 如果在剩余的物品中找不到合适的物品以填满背包,则说明“刚刚”装入的物品“不合适”,应将它取出“弃之一边”,继续再从“它之后”的物品中选取,如此重复,直到求得满足条件的解,或者无解。 由于回溯求解的规则是“后进先出”,自然要用到“栈”。 3.问题分析 1、设计基础 后进先出,用到栈结构。 2、分析设计课题的要求,要求编程实现以下功能: a.从n件物品中挑选若干件恰好装满背包 b. 要求找出所有满足上述条件的解,例如:当T=10,各件物品的体积{1,8,4, 3,5,2}时,可找到下列4组解:(1,4,3,2)、(1,4,5)、(8,2)、(3,5,2)3,要使物品价值最高,即p1*x1+p2*x1+...+pi*xi(其1<=i<=n,x取0或1,取1表示选取物品i) 取得最大值。在该问题中需要决定x1 .. xn的值。假设按i = 1,2,...,n 的次序来确定xi 的值。如果置x1 = 0,则问题转变为相对于其余物品(即物品2,3,.,n),背包容量仍为c 的背包问题。若置x1 = 1,问题就变为关于最大背包容量为c-w1 的问题。现设r={c,c-w1} 为剩余的背包容量。在第一次决策之后,剩下的问题便是考虑背包容量为r 时的决策。不管x1 是0或是1,[x2 ,.,xn ] 必须是第一次决策之后的一个最优方案。也就是说在此问题中,最优决策序列由最优决策子序列组成。这样就满足了动态规划的程序设计条件。 4.问题实现 代码1: #include"iostream" using namespace std; class Link{ public: int m; Link *next; Link(int a=0,Link *b=NULL){ m=a; next=b; } }; class LStack{ private: Link *top;

西 安 交 通 大 学 实 验 报 告 生物信息学

课程生物信息学实验名称核酸和蛋白质序列数据的使用系别实验日期: 专业班级组别交报告日期: 姓名学号报告退发:(订正、重做) 同组人无教师审批签字: 实验目的:了解常用的序列数据库,掌握基本的序列数据信息的查询方法。 实验步骤:在序列数据库中查找某条基因序列(insulin人的),通过相关一系列数据库的搜索、比对与结果解释 实验结果: 1.该基因的功能是? DNA结合、RNA结合、雄激素受体结合、酶结合、蛋白结合、转录激活活性、转录调控区的DNA结合、微管蛋白结合、泛素蛋白与连接酶结合、泛素蛋白连接酶的活性、提高泛素蛋白连接酶的活性、锌离子结合 3. 该蛋白质有没有保守的功能结构域 该蛋白质有保守的功能结构域。分别为cd00027(Location:1763 –1842 Blast Score: 107)cd00162(Location:23 –68 Blast Score: 134)pfam04873(Location:655 –978 Blast Score: 1301)pfam12820(Location:344 –507 Blast Score: 809)pfam13923(Location:20 –65 Blast Score: 135) 4. 该蛋白质的功能是怎样的? ①E3泛素蛋白连接酶,专门介导L YS-6'-联泛素链的形成,并通过促胞对DNA损伤的反应,在DNA修复中起着核心的作用;目前还不清楚是否也介导其他类型的泛素链形成。E3泛素蛋白连接酶的活性是其抑癌能必需的。②BARD1- BRCA1异源二聚体协调各种不同的细胞通路,如DNA损伤修复,泛素化和转录调控,以维持基因组稳定性。③调节中心体微核。 ④从G2到有丝分裂的正常细胞周期进程所必需的。⑤参与转录调控在DNA损伤反应中的P21。⑥为FANCD2靶向DNA损伤位点所需。⑦可以用作转录调控因子。⑧绑定到ACACA 和防止其去磷酸化,抑制脂质合成。 5. 该蛋白质的三级结构是什么?如果没有的话, 和它最相似的同源物的结构是什么样子的?给出 示意图。 该蛋白有三级结构,如图所示

数据结构实验报告全集

数据结构实验报告全集 实验一线性表基本操作和简单程序 1.实验目的 (1)掌握使用Visual C++ 6.0上机调试程序的基本方法; (2)掌握线性表的基本操作:初始化、插入、删除、取数据元素等运算在顺序存储结构和链表存储结构上的程序设计方法。 2.实验要求 (1)认真阅读和掌握和本实验相关的教材内容。 (2)认真阅读和掌握本章相关内容的程序。 (3)上机运行程序。 (4)保存和打印出程序的运行结果,并结合程序进行分析。 (5)按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果 实验代码: 1)头文件模块 #include iostream.h>//头文件 #include//库头文件-----动态分配内存空间 typedef int elemtype;//定义数据域的类型 typedef struct linknode//定义结点类型 { elemtype data;//定义数据域 struct linknode *next;//定义结点指针 }nodetype; 2)创建单链表

nodetype *create()//建立单链表,由用户输入各结点data域之值,//以0表示输入结束 { elemtype d;//定义数据元素d nodetype *h=NULL,*s,*t;//定义结点指针 int i=1; cout<<"建立一个单链表"<> d; if(d==0) break;//以0表示输入结束 if(i==1)//建立第一个结点 { h=(nodetype*)malloc(sizeof(nodetype));//表示指针h h->data=d;h->next=NULL;t=h;//h是头指针 } else//建立其余结点 { s=(nodetype*) malloc(sizeof(nodetype)); s->data=d;s->next=NULL;t->next=s; t=s;//t始终指向生成的单链表的最后一个节点

西安交通大学实验报告

西安交通大学实验报告 课程_大学计算机_实验名称_检索绘图音频及图像处理_第页共页 系别_____ 能动学院___________ 实验日期年月日专业班级________________组别_____________ 实验报告日期年月日姓名________________学号_____________ 报告退发 ( 订正、重做 ) 同组人_________________________________ 教师审批签字 ●目标任务: 一. 信息检索 1.使用百度地图网站搜索西安交通大学南门到西安大唐芙蓉园的公交线路。(屏幕截图)2.在本校图书馆网站查找两门课程的教学参考书(屏幕截图)。 3.使用百度图片网站搜索有关“飞机”和“天空”的图片,各下载一张,并分别命名为:天空.jpg,飞机.jpg。 4.使用Ei检索,检索目前中国高速铁路(High-speed railway in China)相关的工程论文(屏幕截图) 二. 矢量图绘制 题目:使用Microsoft Office Visio 2010办公绘图软件,绘制流程图。 要求:参见实验教材p27,“四. 实验任务和要求”。 三.数字音频处理 题目:使用GoldWave音频处理软件,完成手机铃声制作 要求:从网上下载一个音乐文件,选取最喜爱的片段,将其保存成手机要求的音频格式(如MP3、WAV)作为手机铃声(存放为另一个音乐文件)。 结果:在实验报告中,粘贴两个音乐文件的属性对话框屏幕截图。(分析文件的大小与占用空间的不同) GoldWave软件存放地址: D:\计算机应用技术基础、ECAT.Software\ECAT-Software\GoldWave.rar 或从网上下载。 四.数字图像处理 题目:使用Photoshop软件进行“飞行编队”图像设计。 要求:参见实验教材p37,“四. 实验任务和要求”(1)飞行编队设计。 结果:将设计的“三角飞行编队图片”粘贴到实验报告中。 最后上传实验报告。 ●实验环境

数据结构实验报告模板

2009级数据结构实验报告 实验名称:约瑟夫问题 学生姓名:李凯 班级:21班 班内序号:06 学号:09210609 日期:2010年11月5日 1.实验要求 1)功能描述:有n个人围城一个圆圈,给任意一个正整数m,从第一个人开始依次报数,数到m时则第m个人出列,重复进行,直到所有人均出列为止。请输出n个人的出列顺序。 2)输入描述:从源文件中读取。 输出描述:依次从显示屏上输出出列顺序。 2. 程序分析 1)存储结构的选择 单循环链表 2)链表的ADT定义 ADT List{ 数据对象:D={a i|a i∈ElemSet,i=1,2,3,…n,n≧0} 数据关系:R={< a i-1, a i>| a i-1 ,a i∈D,i=1,2,3,4….,n} 基本操作: ListInit(&L);//构造一个空的单链表表L ListEmpty(L); //判断单链表L是否是空表,若是,则返回1,否则返回0. ListLength(L); //求单链表L的长度 GetElem(L,i);//返回链表L中第i个数据元素的值; ListSort(LinkList&List) //单链表排序 ListClear(&L); //将单链表L中的所有元素删除,使单链表变为空表 ListDestroy(&L);//将单链表销毁 }ADT List 其他函数: 主函数; 结点类; 约瑟夫函数 2.1 存储结构

[内容要求] 1、存储结构:顺序表、单链表或其他存储结构,需要画示意图,可参考书上P59 页图2-9 2.2 关键算法分析 结点类: template class CirList;//声明单链表类 template class ListNode{//结点类定义; friend class CirList;//声明链表类LinkList为友元类; Type data;//结点的数据域; ListNode*next;//结点的指针域; public: ListNode():next(NULL){}//默认构造函数; ListNode(const Type &e):data(e),next(NULL){}//构造函数 Type & GetNodeData(){return data;}//返回结点的数据值; ListNode*GetNodePtr(){return next;}//返回结点的指针域的值; void SetNodeData(Type&e){data=e;}//设置结点的数据值; void SetNodePtr(ListNode*ptr){next=ptr;} //设置结点的指针值; }; 单循环链表类: templateclass CirList { ListNode*head;//循环链表头指针 public: CirList(){head=new ListNode();head->next=head;}//构造函数,建立带头节点的空循环链表 ~CirList(){CirListClear();delete head;}//析构函数,删除循环链表 void Clear();//将线性链表置为空表 void AddElem(Type &e);//添加元素 ListNode *GetElem(int i)const;//返回单链表第i个结点的地址 void CirListClear();//将循环链表置为空表 int Length()const;//求线性链表的长度 ListNode*ListNextElem(ListNode*p=NULL);//返回循环链表p指针指向节点的直接后继,若不输入参数,则返回头指针 ListNode*CirListRemove(ListNode*p);//在循环链表中删除p指针指向节点的直接后继,且将其地址通过函数值返回 CirList&operator=(CirList&List);//重载赋

数据结构实验报告

《用哈夫曼编码实现文件压缩》 实验报告 课程名称数据结构 实验学期2015至2016学年第一学期 学生所在系部计算机学院 年级2014专业班级物联B142班 学生姓名杨文铎学号201407054201 任课教师白磊 实验成绩

用哈夫曼编码实现文件压缩 1、了解文件的概念。 2、掌握线性表的插入、删除的算法。 3、掌握Huffman树的概念及构造方法。 4、掌握二叉树的存储结构及遍历算法。 5、利用Haffman树及Haffman编码,掌握实现文件压缩的一般原理。 微型计算机、Windows系列操作系统、Visual C++6.0软件 根据ascii码文件中各ascii字符出现的频率情况创建Haffman树,再将各字符对应的哈夫曼编码写入文件中,实现文件压缩。 本次实验采用将字符用长度尽可能短的二进制数位表示的方法,即对于文件中出现的字符,无须全部都用S为的ascii码进行存储,根据他们在文件中出现的频率不同,我们利用Haffman算法使每个字符能以最短的二进制数字符进行存储,已达到节省存储空间,压缩文件的目的,解决了压缩需要采用的算法,程序的思路已然清晰: 1、统计需压缩文件中的每个字符出现的频率 2、将每个字符的出现频率作为叶子节点构建Haffman树,然后将树中结点引向 其左孩子的分支标“0”,引向其右孩子的分支标“1”;每个字符的编码 即为从根到每个叶子的路径上得到的0、1序列,这样便完成了Haffman 编码,将每个字符用最短的二进制字符表示。 3、打开需压缩文件,再将需压缩文件中的每个ascii码对应的haffman编码按bit 单位输出。 4、文件压缩结束。 (1)构造haffman树的方法一haffman算法 构造haffman树步骤: I.根据给定的n个权值{w1,w2,w3…….wn},构造n棵只有根结点的二叉 树,令起权值为wj。 II.在森林中选取两棵根结点权值最小的树作左右子树,构造一棵新的二叉树,置新二叉树根结点权值为其左右子树根结点权值之和。 III.在森林中删除这两棵树,同时将得到的二叉树加入森林中。 IV.重复上述两步,知道只含一棵树为止,这棵树即哈夫曼树。 对于haffman的创建算法,有以下几点说明: a)这里的Haffman树采用的是基于数组的带左右儿子结点及父结点下标作为

西安交通大学检测技术课内实验报告

西安交通大学 现代检测技术实验报告 实验一金属箔式应变片——电子秤实验 实验二霍尔传感器转速测量实验 实验三光电传感器转速测量实验 实验四E型热电偶测温实验 实验五E型热电偶冷端温度补偿实验

实验一 金属箔式应变片——电子秤实验 一、实验目的: 了解金属箔式应变片的应变效应,直流全桥工作原理和性能,了解电路的定标。 二、实验仪器: 应变传感器实验模块、托盘、砝码、数显电压表、±15V 、±4V 电源、万用表(自备)。 三、实验原理: 电阻丝在外力作用下发生机械变形时,其电阻值发生变化,这就是电阻应变效应,描述电阻应变效应的关系式为 ε?=?k R R (1-1) 式中 R R ?为电阻丝电阻相对变化; k 为应变灵敏系数; l l ?= ε为电阻丝长度相对变化。 金属箔式应变片就是通过光刻、腐蚀等工艺制成的应变敏感组件。如图1-1所示,将四 个金属箔应变片分别贴在双孔悬臂梁式弹性体的上下两侧,弹性体受到压力发生形变,应变片随弹性体形变被拉伸,或被压缩。 图1-1 双孔悬臂梁式称重传感器结构图

图1-2 全桥面板接线图 全桥测量电路中,将受力性质相同的两只应变片接到电桥的对边,不同的接入邻边,如图3-1,当应变片初始值相等,变化量也相等时,其桥路输出 Uo=R R E ?? (3-1) 式中E 为电桥电源电压。 R R ?为电阻丝电阻相对变化; 式3-1表明,全桥输出灵敏度比半桥又提高了一倍,非线性误差得到进一步改善。 电子称实验原理同全桥测量原理,通过调节放大电路对电桥输出的放大倍数使电路输出电压值为重量的对应值,电压量纲(V )改为重量量纲(g )即成一台比较原始的电子称。 四、实验内容与步骤 1.应变传感器上的各应变片已分别接到应变传感器模块左上方的R1、R2、R3、R4上,可用万用表测量判别,R1=R2=R3=R4=350Ω。 2.差动放大器调零。从主控台接入±15V 电源,检查无误后,合上主控台电源开关,将差动放大器的输入端Ui 短接并与地短接,输出端Uo 2接数显电压表(选择2V 档)。将电位器Rw3调到增益最大位置(顺时针转到底),调节电位器Rw4使电压表显示为0V 。关闭主控台电源。(Rw3、

数据结构实验报告及心得体会

2011~2012第一学期数据结构实验报告 班级:信管一班 学号:201051018 姓名:史孟晨

实验报告题目及要求 一、实验题目 设某班级有M(6)名学生,本学期共开设N(3)门课程,要求实现并修改如下程序(算法)。 1. 输入学生的学号、姓名和 N 门课程的成绩(输入提示和输出显示使用汉字系统), 输出实验结果。(15分) 2. 计算每个学生本学期 N 门课程的总分,输出总分和N门课程成绩排在前 3 名学 生的学号、姓名和成绩。 3. 按学生总分和 N 门课程成绩关键字升序排列名次,总分相同者同名次。 二、实验要求 1.修改算法。将奇偶排序算法升序改为降序。(15分) 2.用选择排序、冒泡排序、插入排序分别替换奇偶排序算法,并将升序算法修改为降序算法;。(45分)) 3.编译、链接以上算法,按要求写出实验报告(25)。 4. 修改后算法的所有语句必须加下划线,没做修改语句保持按原样不动。 5.用A4纸打印输出实验报告。 三、实验报告说明 实验数据可自定义,每种排序算法数据要求均不重复。 (1) 实验题目:《N门课程学生成绩名次排序算法实现》; (2) 实验目的:掌握各种排序算法的基本思想、实验方法和验证算法的准确性; (3) 实验要求:对算法进行上机编译、链接、运行; (4) 实验环境(Windows XP-sp3,Visual c++); (5) 实验算法(给出四种排序算法修改后的全部清单); (6) 实验结果(四种排序算法模拟运行后的实验结果); (7) 实验体会(文字说明本实验成功或不足之处)。

三、实验源程序(算法) Score.c #include "stdio.h" #include "string.h" #define M 6 #define N 3 struct student { char name[10]; int number; int score[N+1]; /*score[N]为总分,score[0]-score[2]为学科成绩*/ }stu[M]; void changesort(struct student a[],int n,int j) {int flag=1,i; struct student temp; while(flag) { flag=0; for(i=1;ia[i+1].score[j]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; flag=1; } for(i=0;ia[i+1].score[j]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; flag=1;

奥鹏西交16年《数据结构》作业考核试题

西交16年《数据结构》作业考核试题 一、单选题(共 30 道试题,共 60 分。) 1. 设某哈夫曼树中有199个结点,则该哈夫曼树中有()个叶子结点。 A. 99 [正确]B. 100 C. 101 D. 102 满分:2 分 2. 字符串的长度是指() A. 串中不同字符的个数 B. 串中不同字母的个数 [正确]C. 串中所含字符的个数 D. 串中不同数字的个数 满分:2 分 3. 设某有向图中有n个顶点,则该有向图对应的邻接表中有()个表头结点。 A. n-1 [正确]B. n C. n+1 D. 2n-1 满分:2 分 4. 设顺序线性表的长度为30,分成5块,每块6个元素,如果采用分块查找,则其平均查找长度为()。 A. 6 B. 11 C. 5 [正确]D. 6.5 满分:2 分 5. 在一棵具有5层的满二叉树中结点数为() [正确]A. 31 B. 32 C. 33 D. 16 满分:2 分 6. 下面关于线性表的叙述错误的是()。 A. 线性表采用顺序存储必须占用一片连续的存储空间 B. 线性表采用链式存储不必占用一片连续的存储空间 C. 线性表采用链式存储便于插入和删除操作的实现 [正确]D. 线性表采用顺序存储便于插入和删除操作的实现 满分:2 分 7. 设某无向图中有n个顶点e条边,则该无向图中所有顶点的入度之和为()。 A. n B. e C. 2n

满分:2 分 8. 设一组初始记录关键字的长度为8,则最多经过()趟插入排序可以得到有序序列。 A. 6 [正确]B. 7 C. 8 D. 9 满分:2 分 9. 设按照从上到下、从左到右的顺序从1开始对完全二叉树进行顺序编号,则编号为i结点的左孩子结点的编号为()。 A. 2i+1 [正确]B. 2i C. i/2 D. 2i-1 满分:2 分 10. 设指针变量top指向当前链式栈的栈顶,则删除栈顶元素的操作序列为()。 A. top=top+1; B. top=top-1; C. top->next=top; [正确]D. top=top->next; 满分:2 分 11. 二叉排序树中左子树上所有结点的值均()根结点的值。 [正确]A. < B. > C. = D. != 满分:2 分 12. 假设一个有n个顶点和e条弧的有向图用邻接表表示,则删除与某个顶点vi相关的所有弧的时间复杂度是() A. O(n) B. O(e) [正确]C. O(n+e) D. O(n*e) 满分:2 分 13. 在含n个顶点和e条边的无向图的邻接矩阵中,零元素的个数为() A. e B. 2e C. n2-e [正确]D. n2-2e 满分:2 分 14. ()二叉排序树可以得到一个从小到大的有序序列。 A. 先序遍历 [正确]B. 中序遍历 C. 后序遍历

西安交大自动控制原理实验报告

自动控制原理实验报告 学院: 班级: 姓名: 学号:

西安交通大学实验报告 课程自动控制原理实验日期2014 年12月22 日专业班号交报告日期 2014 年 12月27日姓名学号 实验五直流电机转速控制系统设计 一、实验设备 1.硬件平台——NI ELVIS 2.软件工具——LabVIEW 二、实验任务 1.使用NI ELVIS可变电源提供的电源能力,驱动直流马达旋转,并通过改变电压改变 其运行速度; 2.通过光电开关测量马达转速; 3.通过编程将可变电源所控制的马达和转速计整合在一起,基于计算机实现一个转速自 动控制系统。 三、实验步骤 任务一:通过可变电源控制马达旋转 任务二:通过光电开关测量马达转速 任务三:通过程序自动调整电源电压,从而逼近设定转速

编程思路:PID控制器输入SP为期望转速输出,PV为实际测量得到的电机转速,MV为PID输出控制电压。其中SP由前面板输入;PV通过光电开关测量马达转速得到;将PID 的输出控制电压接到“可变电源控制马达旋转”模块的电压输入控制端,控制可变电源产生所需的直流电机控制电压。通过不断地检测马达转速与期望值对比产生偏差,通过PID控制器产生控制信号,达到直流电机转速的负反馈控制。 PID参数:比例增益:0.0023 积分时间:0.010 微分时间:0.006 采样率和待读取采样:采样率:500kS/s 待读取采样:500 启动死区:电机刚上电时,速度为0,脉冲周期测量为0,脉冲频率测量为无限大。通过设定转速的“虚拟下限”解决。本实验电机转速最大为600r/min。故可将其上限值设为600r/min,超过上限时,转速的虚拟下限设为200r/min。 改进:利用LabVIEW中的移位寄存器对转速测量值取滑动平均。

西安交通大学大数据结构复习资料

第一章绪论 1、数据结构的主要研究内容 ①数据的逻辑结构--数据关系之间的逻辑关系 ②数据的存储结构--数据的逻辑结构在计算机中的表示 2、数据逻辑结构的种类:集合、线性表、树和图的性质和特点。 ?集合结构中的元素是各自独立的,元素之间没有联系 ?线性结构中的元素是一个接一个串联起来的,它有一个头元素和一个尾元素,其余为中间元素;每个中间元素既有前驱元素,又有后继元素 ?在树结构中,树根结点只有后继结点,而没有前驱结点;除树根结点外,每个结点都有唯一一个前驱结点,又称为是父结点或双亲结点 ?在图结构中,每个结点或称顶点都可以有任意多个前驱结点和任意多个后继结点。 ?树结构是图结构的特例,线性结构是树结构的特例。为了区别于线性结构,时常把树结构和图结构称为非线性结构。 3、数据结构的二元组定义,能根据给出的二元组来判断数据的逻辑结构类型。 ?集合结构中的元素集合K和二元关系R分别为: K={A,B,C,D,E,F,G} R={ } ?线性结构中的元素集合K和二元关系R分别为: K={A,B,C,D,E,F,G} R={} ?树结构中的元素集合K和二元关系R分别为: K={A,B,C,D,E,F,G} R={} ?图结构中的元素集合K和二元关系R分别为: K={A,B,C,D,E,F,G} R={} 4、了解数据的几种存储结构(物理结构)及它们各自的性质和特点。 (1)顺序的方法: 将逻辑上相邻的元素存储到物理上相邻的存储位置. 常用于线性的数据结构. (2)链式结构:给结点附加一个指针字段, 指出其后继节点的位置, 即存放结点的存储单元分为两部分: (3)散列(hashing) 结构:散列的方法是用结点的关键字值直接计算出结点的存储地址。这个取值函数也称为散列函数。 5、数据的逻辑结构、存储结构和总的数据结构之间的关系 ?逻辑结构相同,但存储结构不同,则认为是不同的数据结构。如顺序表和链表具有相同的逻辑结构,但存储结构分别为顺序结构和链表结构 6、算法的设计要求有那些,会结合实际的语言设计来说明这些要求 1)正确性:对于合法的输入产生符合要求的输出;

西安交大金融学实验报告

金融学实验报告 题目:《金融学》证券模拟交易实验报告 院系:经济与金融学院 2015年12月16日 【实验题目】 证券模拟交易 【实验目的】 通过选取股票进行模拟交易掌握基本的证券及证券市场知识。 理解证券价格走势的基本特征,价格走势与成交量之间的基本关系:通过对证券分析软件的使用了解证券分析软件基本功能和证券模拟交易系统的基本使用方法。 【理论基础】 运用财务知识对证券进行基本面的分析。 运用K线分析方法及成交量分析方法描述多空力量对比及变化趋势,进而判断证券价格走势。 运用移动平行线判断证券价格运行状态。 【实验要求】 利用模拟交易系统进行选股分析,并进行股票投资,验证对后市股价预测的准确性。 【实验方案与进度】 本次实验选取分析的股票是信维通信(300136)。利用大智慧证券分析系统和新浪财经网、和讯网、东方财富网等获取股价走势图等相关图表和数据。

在通过对证券分析方法的教材等进行系统地学习之后对股票进行技术面的分析,并结合技术分析,如:K线分析方法、成交量分析方法、主盘控制程度分析表、机构与散户资金对比表等,综合评定股票,预测股票在未来的走势。 【实验过程与步骤】 了解证券投资基础知识; 了解证券投资实践基础知识; 学会看盘,掌握证券投资软件操作; 运用炒股软件进行模拟交易,对股票进行基本面和技术面的分析,预测股票在未来的走势。 一、基本面分析 【公司及股票信息】

【宏观行情分析】 2015年,受益经济结构升级和企业转型,科技行业和ICT行业的估值不断提升。运营商投资进入后4G真空期,单纯网络升级的投资驱动逻辑难以为继,同时行业在网络、系统、业务三个层面也在发生深刻变化,新成长的方向已崭露头角。展望2016大通信行业,国家战略需求、反恐安防升级、网军建设将造就信息安全和专网的确定性成长;军改下的军用通信将受益于中国版C4ISR加速建设;ICT融合下,SDN/NFV、大数据技术将产生颠覆。维持行业“推荐”评级,建议把握有成长确定性的细分子行业,并采取自下而上的选股策略,重点推荐五条投资主线:信息安全和专网通信、军用通信、大数据、互联网转型和工业互联网、小公司大平台。 11月份结束,12月份来临,受新股IPO、美国加息预期等影响,短期市场可能会有所波动。但展望2016年,上游半导体整合并购不止,中游零组件创新不断,下游新终端产品持续推出,我们对电子行业保持乐观态度。整体来看,虽然今年半导体衰退压力较大,但明年资本支出看增显示出它们乐观态度,加上产业整合并购不断,半导体将继续精彩纷呈;电 子制造业受欧美先进制造和东南亚中低端制造的前后夹击,国内人力成本上升,加上企业对90后的管理更加困难,很多电子制造厂商都有意愿加强制造的自动化,预计未来两年电子制造自动化仍能保持较高景气。 【公司素质分析】 个股价值评估 公司地位 股本结构 ④公司战略 坚持大客户战略,业绩确定高增长 公司成长逻辑清晰:国际大客户基础+基于核心技术(+份额提升+产品线拓张=确定的高 速增长。公司始终坚持大客户战略,凭借射频技术、快速响应及出色的产品品质得到大客户认可,已经成为苹果、三星、索尼、华为、微软等国际大客户主力供应商,公司将持续跟随客户成长。 在此基础上,其产品在客户的份额不断提升。射频系列,以苹果为例,公司wifi天线在iPhone的份额提升至30-50%,与安费诺不相伯仲,此外也全面进入iPad、Mac等全系列产品线,我们估测苹果手机wifi天线年需求1-2亿美金,平板天线年需求6-7亿元美 金,Macbook天线年需求3-4亿美金,且从iphone7起手机WiFi天线数量大概率将翻倍;

相关主题
文本预览
相关文档 最新文档