实验七 查找

实验七  查找
实验七  查找

实验七查找、排序的应用

一、实验目的

1、本实验可以使学生更进一步巩固各种查找和排序的基本知识。

2、学会比较各种排序与查找算法的优劣。

3、学会针对所给问题选用最适合的算法。

4、掌握利用常用的排序与选择算法的思想来解决一般问题的方法和技巧。

二、实验内容

[问题描述]

学生信息管理系统

[基本要求]

设计一个学生信息管理系统,学生对象至少要包含:学号、姓名、性别、成绩1、成绩2、总成绩等信息。要求实现以下功能:

1.试选择一种方式实现:基于数组、链表或文件方式

2.总成绩要求自动计算;

3.查询:分别给定学生学号、姓名、性别,能够查找到学生的基本信息(要求至少用两种查找算法实现);

排序:分别按学生的学号、成绩1、成绩2、总成绩进行排序(要求至少用两种排序算法实现)。

[测试数据]

由学生依据软件工程的测试技术自己确定。

三、实验前的准备工作

1、掌握哈希表的定义,哈希函数的构造方法。

2、掌握一些常用的查找方法。

1、掌握几种常用的排序方法。

2、掌握直接排序方法。

四、实验报告要求

1、实验报告要按照实验报告格式规范书写。

2、实验上要写出多批测试数据的运行结果。

3、结合运行结果,对程序进行分析。

三、实验步骤

typedef struct

//定义每个记录(数据元素)的结构

{

string xingming; //姓名

string xingbei; //性别

float xuehao; //学号

float chengji1,chengji2; //成绩1,成绩2

float zong; //总分

}RecordType;

typedef struct //定义顺序表的结构

{

RecordType r[MAXSIZE +1]; //存储顺序表的向量

查找

顺序查找

从表的一端开始逐个进行记录的关键字和给定值的比较。在这里从表尾开始并把下标为0的作为哨兵。

void chaxun(SqList &ST) //查询信息

{

cout<<"\n************************"<

cout<<"~ (1)根据学号查询 ~"<

cout<<"~ (2)根据姓名查询 ~"<

cout<<"~ (3)根据性别查询 ~"<

cout<<"~ (4)退出 ~"<

cout<<"\n************************"<

顺序查找算法:

cout<<"输入要查找的姓名"<

cin>>name;

for(int i=0;i

{

if(name==ST.r[i].xingming)

{

cout<

"<

"<

"<

"<

"<

a=1;

}

排序

a.直接插入排序

每步将一个待排序的记录,按其关键码大小,插入到前面已经排好序的一组记录的适当位置上,直到记录全部插入为止。

//按学号排序,使用插入排序

void inssort(recordlist * l)

{

int j;

for(int i=2;i<=l->length;i++)

{

l->r[0].key=l->r[i].key;

j=i-1;

while(l->r[0].keyr[j].key)

{

l->r[j+1].key =l->r[j].key;

j=j-1;

}

l->r[j+1].key=l->r[0].key;

}

for(int m=1;m<=l->length;m++)

cout<r[m].key<<" ";

cout<

}

b.冒泡排序

void bubblesort(recordlist * l)

{

int i,j,x;

int change=TRUE;

for(i=1;i<=l->length && change;++i)

{

change=FALSE;

for(j=1;j<=l->length-i;++j)

if(l->r[j].key>l->r[j+1].key)

{

x=l->r[j].key;

l->r[j].key=l->r[j+1].key

l->r[j+1].key=x;

change=TRUE;

}

}

for(int m=1;m<=l->length;m++)

cout<r[m].key<<" ";

cout<

}

c.快速排序

int qkpass(recordlist * l,int left,int right) {

int x=l->r[left].key;

int low=left;

int high=right;

while(low

{

while(lowr[high].key >=x)

high--;

if(low

{

l->r[low].key =l->r[high].key

low++;

}

while(lowr[high].key

low++;

if(low

{

l->r[high].key=l->r[low].key;

high--;

}

}

l->r[low].key=x;

return low;

}

void qksort(recordlist *l,int low,int high)

{

int pos;

if(low<=high)

{

pos=qkpass(l,low,high);

qksort(l,low,pos-1);

qksort(l,pos+1,high);

}

}

d.简单选择排序

void selectsort(recordlist * l)

{

int i,j,k,x,n;

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

{

k=i;

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

{

if(l->r[j].keyr[k].key) k=j;

if(k!=i)

{

x=l->r[i].key;

l->r[i].key=l->r[k].key;

l->r[k].key=x;

}

}

}

}

四、测试数据与实验结果

1.直接插入排序

2.冒泡排序

3.快速排序

4.简单选择排序

5.顺序查找

五、实验总结

通过本次实验我对查找排序的应用有了相对的了解。通过自己数次的调试、修改也搞懂了许多以前比较模糊的知识点,比如这次的界面是复制过来的,其中很多语句经过同学的帮助及查找资料后可以理解。但这次实验也有很多不尽人意的地方,程序与老师的要求可能会有些出入我将在以后的试验中会加强自己的编程能力,多学习同学优秀的地方.也会在以后的学习过程中要尽量考虑周全。

六、源代码

#include

#include

#define maxsize 12

#define listsize 10

#define keysize 10

#define MAX 100

#define radix 10

typedef int keytype;

typedef struct

{

string xingming; //姓名

string xingbei; //性别

float xuehao; //学号

float chengji1,chengji2; //成绩1,成绩2

float zong; //总分

int key;

int next;

}recordtype;

typedef struct

{

recordtype r[listsize +1];

int length;

}recordlist;

typedef int pvector[radix];

//直接插入排序

void inssort(recordlist * l)

{

int j;

for(int i=2;i<=l->length;i++)

{

l->r[0].key=l->r[i].key;

j=i-1;

while(l->r[0].keyr[j].key) {

l->r[j+1].key =l->r[j].key;

j=j-1;

}

l->r[j+1].key=l->r[0].key;

}

for(int m=1;m<=l->length;m++)

cout<r[m].key<<" ";

cout<

}

//冒泡排序

void bubblesort(recordlist * l)

{

int i,j,x;

int change=TRUE;

for(i=1;i<=l->length && change;++i) {

change=FALSE;

for(j=1;j<=l->length-i;++j)

if(l->r[j].key>l->r[j+1].key) {

x=l->r[j].key;

l->r[j].key=l->r[j+1].key

l->r[j+1].key=x;

change=TRUE;

}

for(int m=1;m<=l->length;m++)

cout<r[m].key<<" ";

cout<

}

//简单选择排序

void selectsort(recordlist * l)

{

int i,j,k,x,n;

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

{

k=i;

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

{

if(l->r[j].keyr[k].key)

k=j;

if(k!=i)

{

x=l->r[i].key;

l->r[i].key=l->r[k].key;

l->r[k].key=x;

}

}

}

}

//快速排序

int qkpass(recordlist * l,int left,int right) {

int x=l->r[left].key;

int low=left;

int high=right;

while(low

{

while(lowr[high].key >=x)

high--;

if(low

{

l->r[low].key =l->r[high].key

low++;

}

while(lowr[high].key

low++;

if(low

l->r[high].key=l->r[low].key;

high--;

}

}

l->r[low].key=x;

return low;

}

void qksort(recordlist *l,int low,int high)

{

int pos;

if(low<=high)

{

pos=qkpass(l,low,high);

qksort(l,low,pos-1);

qksort(l,pos+1,high);

}

}

//顺序查找

void chaxun(SqList &ST) //查询信息

{

cout<<"\n************************"<

cout<<"~ (1)根据学号查询 ~"<

cout<<"~ (2)根据姓名查询 ~"<

cout<<"~ (3)根据性别查询 ~"<

cout<<"~ (4)退出 ~"<

cout<<"\n************************"<

cin>>name;

for(int i=0;i

{

if(name==ST.r[i].xingming)

{

cout<

"<

"<

"<

"<

"<

}

}

}

void main()

{

int a=1,k,r,e,q;

char b;

recordlist *L;

L=(recordlist*)malloc(sizeof(recordlist)); cout<<"输入所创表的长度:"<

cin>>r;

L->length=r;

cout<<"输入表的元素:"<

for(int i=1;i<=L->length;i++)

{

cout<<"请输入第"<

cin>>L->r[i].key;

}

while(a)

{

cout<<"*********菜单**********"<

cout<<"1直接插入排序:"<

cout<<"2冒泡排序:"<

cout<<"3快速排序:"<

cout<<"4简单选择排序:"<

cout<<"5顺序查找:"<

cout<<"6退出操作:"<

cout<<"请输入你选择的操作序号:";

cin>>b;

switch(b)

{

case '1':

cout<<"直接插入排序:"<

case '2':

cout<<"冒泡排序:"<

bubblesort(L); break;

case '3':

cout<<"快速排序:"<

qksort(L,1,10);

for( q=1;q<=L->length;q++)

cout<r[q].key<<" ";

cout<

case '4':

cout<<"简单选择排序:"<

selectsort(L);

for( q=1;q<=L->length;q++)

cout<r[q].key<<" ";

cout<

case '5':

cout<<"进行顺序查找:"<

cout<<"输入要查找的元素:"<>k;

seqsearch(L,k); break;

case '6':

a=0;

cout<<"退出!"<

}

}

数据结构实验七 查找

实验七查找 一、实验目的 1. 掌握查找的不同方法,并能用高级语言实现查找算法; 2. 熟练掌握二叉排序树的构造和查找方法。 3. 熟练掌握静态查找表及哈希表查找方法。 二、实验内容 设计一个读入一串整数,然后构造二叉排序树,进行查找。 三、实验步骤 1. 从空的二叉树开始,每输入一个结点数据,就建立一个新结点插入到当前已生成的二叉排序树中。 2. 在二叉排序树中查找某一结点。 3.用其它查找算法进行排序(课后自己做)。 四、实现提示 1. 定义结构 typedef struct node { int key; int other; struct node *lchild, *rchild; } bstnode; void inorder ( t ) { if (t!=Null) { inorder(t→lchild); printf(“%4d”, t→key); inorder(t→rchild); } } bstnode *insertbst(t, s) bstnode *s, *t; { bstnode *f, *p; p=t;

while(p!=Null) { f=p; if (s→key= =p→key) return t; if (s→key

实验8查找与排序算法的实现和应用

陕西科技大学实验报告 班级学号姓名实验组别 实验日期室温报告日期成绩 报告内容:(目的和要求、原理、步骤、数据、计算、小结等) 实验名称:查找与排序算法的实现和应用 实验目的: 1. 掌握顺序表中查找的实现及监视哨的作用。 2. 掌握折半查找所需的条件、折半查找的过程和实现方法。 3. 掌握二叉排序树的创建过程,掌握二叉排序树查找过程的实现。 4. 掌握哈希表的基本概念,熟悉哈希函数的选择方法,掌握使用线性探测法和链地址法进行冲突解决的方 法。 5. 掌握直接插入排序、希尔排序、快速排序算法的实现。 实验环境(硬/软件要求):Windows 2000,Visual C++ 6.0 实验内容: 通过具体算法程序,进一步加深对各种查找算法的掌握,以及对实际应用中问题解决方 法的掌握。各查找算法的输入序列为:26 5 37 1 61 11 59 15 48 19输出 要求:查找关键字37,给出查找结果。对于给定的某无序序列,分别用直接插入排序、希尔排序、快速排序等方法进行排序,并输出每种排序下的各趟排序结果。 各排序算法输入的无序序列为:26 5 37 1 61 11 59 15 48 19。 实验要求: 一、查找法 1. 顺序查找 首先从键盘输入一个数据序列生成一个顺序表,然后从键盘上任意输入一个值,在顺序 表中进行查找。 2. 折半查找

任意输入一组数据作为个数据元素的键值,首先将此序列进行排序,然后再改有序表上 使用折半查找算法进对给定值key 的查找。 3. 二叉树查找 任意输入一组数据作为二叉排序树中节点的键值,首先创建一颗二叉排序树,然后再次二叉排序树上实现对一 定k的查找过程。 4. 哈希表查找 任意输入一组数值作为个元素的键值,哈希函数为Hash (key )=key%11, 用线性探测再散列法解决冲突问题。 二、排序算法 编程实现直接插入排序、希尔排序、快速排序各算法函数;并编写主函数对各排序函数进行测试。 实验原理: 1. 顺序查找: 在一个已知无(或有序)序队列中找出与给定关键字相同的数的具体位置。原理是让关键字与队列中的数从最后一个开始逐个比较,直到找出与给定关键字相同的数为止,它的缺点是效率低下。 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以

2020-2021成都七中实验学校(初中部)七年级数学上期末模拟试卷(含答案)

2020-2021成都七中实验学校(初中部)七年级数学上期末模拟试卷(含答案) 一、选择题 1.若x 是3-的相反数,5y =,则x y +的值为( ) A .8- B .2 C .8或2- D .8-或2 2.若x =5是方程ax ﹣8=12的解,则a 的值为( ) A .3 B .4 C .5 D .6 3.如图的正方体盒子的外表面上画有3条黑线,将这个正方体盒子的表面展开(外表面朝上),展开图可能是( ) A . B . C . D . 4.如图所示运算程序中,若开始输入的x 值为48,我们发现第1次输出的结果为24,第2次输出的结果为12,…第2017次输出的结果为( ) A .3 B .6 C .4 D .2 5.商店将进价2400元的彩电标价3200元出售,为了吸引顾客进行打折出售,售后核算仍可获利20%,则折扣为( ) A .九折 B .八五折 C .八折 D .七五折 6.若单项式2x 3y 2m 与﹣3x n y 2的差仍是单项式,则m+n 的值是( ) A .2 B .3 C .4 D .5 7.如图,数轴上有A ,B ,C ,D 四个点,其中表示互为相反数的点是( ) A .点A 和点C B .点B 和点D C .点A 和点D D .点B 和点C 8.下面结论正确的有( ) ①两个有理数相加,和一定大于每一个加数. ②一个正数与一个负数相加得正数. ③两个负数和的绝对值一定等于它们绝对值的和. ④两个正数相加,和为正数. ⑤两个负数相加,绝对值相减.

⑥正数加负数,其和一定等于0. A .0个 B .1个 C .2个 D .3个 9.运用等式性质进行的变形,正确的是( ) A .如果a =b ,那么a +2=b +3 B .如果a =b ,那么a -2=b -3 C .如果 ,那么a =b D .如果a 2=3a ,那么a =3 10.如图,每个图案均由边长相等的黑、白两色正力形按规律拼接面成,照此规律,第n 个图案中白色正方形比黑色正方形( )个. A .n B .(5n+3) C .(5n+2) D .(4n+3) 11.如图,将一副三角板叠放在一起,使直角的顶点重合于O ,则∠AOC+∠DOB=( ) A .90° B .180° C .160° D .120° 12.关于的方程的解为正整数,则整数的值为( ) A .2 B .3 C .1或2 D .2或3 二、填空题 13.若一件商品按成本价提高40%后标价,又以8折优惠卖出,结果仍可获利15元,则这件商品的实际售价为______元. 14.已知:﹣a =2,|b |=6,且a >b ,则a +b =_____. 15.若 13 a +与273a -互为相反数,则a=________. 16.6年前,甲的年龄是乙的3倍,现在甲的年龄是乙的2倍,甲现在_________岁,乙现在________岁. 17.一件衣服售价为200元,六折销售,仍可获利20%,则这件衣服的进价是_____元. 18.如图,在∠AOB 的内部有3条射线OC 、OD 、OE ,若∠AOC =60°,∠BOE = 1n ∠BOC ,∠BOD =1 n ∠AOB ,则∠DOE =_____°.(用含n 的代数式表示)

数据结构实验7实验报告

暨南大学本科实验报告专用纸 课程名称数据结构实验成绩评定 实验项目名称习题6.51 指导教师孙世良 实验项目编号实验7 实验项目类型实验地点实验楼三楼机房学生姓名林炜哲学号2013053005 学院电气信息学院系专业软件工程 实验时间年月日午~月日午温度℃湿度(一)实验目的 熟悉和理解二叉树的结构特性; 熟悉二叉树的各种存储结构的特点及适用范围; 掌握遍历二叉树的各种操作及其实现方式。 (二)实验内容和要求 编写一个算法,输出以二叉树表示的算术表达式,若该表达式中含有括号,则应该在输出时添上。 (三)主要仪器设备 实验环境:Microsoft Visual Studio 2012 (四)源程序 #include #include typedef struct bitnode{ char data; struct bitnode *lchild,*rchild; }bitnode,*bitree; void create(bitree &T){ char t; t=getchar();

if(t==' ') T=NULL; else{ if( !( T=(bitnode*)malloc(sizeof(bitnode)) ) ) exit(0); T->data=t; create(T->lchild); create(T->rchild); } } void middle_order(bitree &Node){ if(Node != NULL){ if((Node->data=='*'||Node->data=='/')&&(Node->lchild->data=='+'|| Node->lchild->data=='-')) printf("( "); middle_order(Node->lchild); if((Node->data=='*'||Node->data=='/')&&(Node->lchild->data=='+'|| Node->lchild->data=='-')) printf(") "); printf("%c ", Node->data); if((Node->data=='*'||Node->data=='/')&&(Node->rchild->data=='+'|| Node->rchild->data=='-')) printf("( "); middle_order(Node->rchild); if((Node->data=='*'||Node->data=='/')&&(Node->rchild->data=='+'|| Node->rchild->data=='-')) printf(") "); } } int main() { bitree y; printf("以先序遍历的方式输入二叉树:"); create(y); printf("输出表达式:"); middle_order(y); return 0; } (五)数据调试

成都七中实验学校必修第二册第五单元《概率》检测卷(有答案解析)

一、选择题 1.抛掷一个质地均匀的骰子的试验,事件A 表示“小于5的偶数点出现”,事件B 表示“不小于5的点数出现”,则一次试验中,事件A 或事件B 至少有一个发生的概率为( ) A . 23 B . 13 C .1 2 D . 56 2.甲乙两运动员进行乒乓球比赛,采用7局4胜制.在一局比赛中,先得11分的运动员为胜方,但打到10平以后,先多得2分者为胜方.在10平后,双方实行轮换发球法,每人每次只发1个球.若在某局比赛中,甲发球时甲得分的概率为 2 3 ,乙发球时甲得分的概率为1 2 ,各球的结果相互独立,在某局双方10:10平后,甲先发球,则甲以13:11赢下此局的概率为( ) A . 29 B . 19 C . 16 D . 118 3.若5个人按原来站的位置重新站成一排,恰有两人站在自己原来的位置上的概率为( ) A . 12 B . 14 C . 16 D . 18 4.从1,2,3,4这四个数字中依次取(不放回)两个数字,a b ,使得()()lg 3lg 4a b ≥成立的概率是( ) A . 13 B . 512 C . 12 D . 712 5.设两个独立事件A 和B 同时不发生的概率是p ,A 发生B 不发生与A 不发生B 发生的概率相同,则事件A 发生的概率为( ) A .2p B . 2 p C .1 D .16.设A ,B ,C 是三个事件,给出下列四个事件: (Ⅰ)A ,B ,C 中至少有一个发生; (Ⅱ)A ,B ,C 中最多有一个发生; (Ⅲ)A ,B ,C 中至少有两个发生; (Ⅳ)A ,B ,C 最多有两个发生; 其中相互为对立事件的是( ) A .Ⅰ和Ⅱ B .Ⅱ和Ⅲ C .Ⅲ和Ⅳ D .Ⅳ和Ⅰ 7.从一批产品中取出三件产品,设事件A 为“三件产品全不是次品”,事件B 为“三件产品全是次品”,事件C 为“三件产品不全是次品”,则下列结论正确的是( ) A .事件A 与C 互斥 B .事件B 与C 互斥 C .任何两个事件均互斥 D .任何两个事件均不互斥 8.“三个臭皮匠,赛过诸葛亮”,这是我们常说的口头禅,主要是说集体智慧的强大. 假设

数据结构实验报告七查找、

云南大学软件学院数据结构实验报告 (本实验项目方案受“教育部人才培养模式创新实验区(X3108005)”项目资助)实验难度: A □ B □ C □ 学期:2010秋季学期 任课教师: 实验题目: 查找算法设计与实现 姓名: 王辉 学号: 20091120154 电子邮件: 完成提交时间: 2010 年 12 月 27 日

云南大学软件学院2010学年秋季学期 《数据结构实验》成绩考核表 学号:姓名:本人承担角色: 综合得分:(满分100分) 指导教师:年月日(注:此表在难度为C时使用,每个成员一份。)

(下面的内容由学生填写,格式统一为,字体: 楷体, 行距: 固定行距18,字号: 小四,个人报告按下面每一项的百分比打分。难度A满分70分,难度B满分90分)一、【实验构思(Conceive)】(10%) 1 哈希表查找。根据全年级学生的姓名,构造一个哈希表,选择适当的哈希函数和解决冲突的方法,设计并实现插入、删除和查找算法。 熟悉各种查找算法的思想。 2、掌握查找的实现过程。 3、学会在不同情况下运用不同结构和算法求解问题。 4 把每个学生的信息放在结构体中: typedef struct //记录 { NA name; NA tel; NA add; }Record; 5 void getin(Record* a)函数依次输入学生信息 6 人名折叠处理,先将用户名进行折叠处理折叠处理后的数,用除留余数法构造哈希函数,并返回模值。并采用二次探测再散列法解决冲突。 7姓名以汉语拼音形式,待填入哈希表的人名约30个,自行设计哈希函数,用线性探测再散列法或链地址法处理冲突;在查找的过程中给出比较的次数。完成按姓名查询的操作。将初始班级的通讯录信息存入文件。 二、【实验设计(Design)】(20%) (本部分应包括:抽象数据类型的功能规格说明、主程序模块、各子程序模块的伪码说明,主程序模块与各子程序模块间的调用关系) 1抽象数据类型的功能规格说明和结构体: #include

数据结构实验八内部排序

实验八内部排序 一、实验目的 1、掌握内部排序的基本算法; 2、分析比较内部排序算法的效率。 二、实验内容和要求 1. 运行下面程序: #include #include #define MAX 50 int slist[MAX]; /*待排序序列*/ void insertSort(int list[], int n); void createList(int list[], int *n); void printList(int list[], int n); void heapAdjust(int list[], int u, int v); void heapSort(int list[], int n); /*直接插入排序*/ void insertSort(int list[], int n) { int i = 0, j = 0, node = 0, count = 1; printf("对序列进行直接插入排序:\n"); printf("初始序列为:\n"); printList(list, n); for(i = 1; i < n; i++) { node = list[i]; j = i - 1; while(j >= 0 && node < list[j]) { list[j+1] = list[j]; --j; } list[j+1] = node; printf("第%d次排序结果:\n", count++); printList(list, n); } } /*堆排序*/ void heapAdjust(int list[], int u, int v)

数据结构实验——查找算法的实现

实验五 查找算法实现

1、实验目的 熟练掌握顺序查找、折半查找及二叉排序树、平衡二叉树上的查找、插入和删除的方法,比较它们的平均查找长度。 2、问题描述 查找表是数据处理的重要操作,试建立有100个结点的二叉排序树进行查找,然后用原数据建立AVL树,并比较两者的平均查找长度。 3、基本要求 (1)以链表作为存储结构,实现二叉排序树的建立、查找和删除。 (2)根据给定的数据建立平衡二叉树。 4、测试数据 随即生成 5、源程序 #include<> #include<> #include<> #define EQ(a,b) ((a)==(b)) #define LT(a,b) ((a)<(b)) #define LQ(a,b) ((a)>(b)) typedef int Keytype; typedef struct { Keytype key; //关键字域 }ElemType; typedef struct BSTnode { ElemType data; int bf; struct BSTnode *lchild,*rchild; }BSTnode,*BSTree; void InitBSTree(BSTree &T) {T=NULL; } void R_Rotate(BSTree &p) {BSTnode *lc; lc=p->lchild; p->lchild=lc->rchild; lc->rchild=p; p=lc; } void L_Rotate(BSTree &p) {BSTnode *rc; rc=p->rchild; p->rchild=rc->lchild;

成都七中实验学校七年级上学期数学期末试卷及答案-百度文库

成都七中实验学校七年级上学期数学期末试卷及答案-百度文库 一、选择题 1.若34(0)x y y =≠,则( ) A .34y 0x += B .8-6y=0x C .3+4x y y x =+ D . 43 x y = 2.﹣3的相反数是( ) A .13 - B . 13 C .3- D .3 3.如图,一副三角尺按不同的位置摆放,摆放位置中∠α与∠β不相等...的图形是( ) A . B . C . D . 4.直线3l 与12,l l 相交得如图所示的5个角,其中互为对顶角的是( ) A .3∠和5∠ B .3∠和4∠ C .1∠和5∠ D .1∠和4∠ 5.下列选项中,运算正确的是( ) A .532x x -= B .2ab ab ab -= C .23a a a -+=- D .235a b ab += 6.如图,数轴的单位长度为1,点A 、B 表示的数互为相反数,若数轴上有一点C 到点B 的距离为2个单位,则点C 表示的数是( ) A .-1或2 B .-1或5 C .1或2 D .1或5 7.在实数:3.1415935-π251 7 ,0.1313313331…(每2个1之间依次多一个3)中,无理数的个数是( ) A .1个 B .2个 C .3个 D .4个 8.一张普通A4纸的厚度约为0.000104m ,用科学计数法可表示为() m

A.2 1.0410- ?B.3 1.0410- ?C.4 1.0410- ?D.5 1.0410- ?9.在下边图形中,不是如图立体图形的视图是() A.B. C.D. 10.下列四个数中最小的数是() A.﹣1 B.0 C.2 D.﹣(﹣1)11.﹣3的相反数是() A. 1 3 -B. 1 3 C.3-D.3 12.某中学进行义务劳动,去甲处劳动的有30人,去乙处劳动的有24人,从乙处调一部分人到甲处,使甲处人数是乙处人数的2倍,若设应从乙处调x人到甲处,则所列方程是() A.2(30+x)=24﹣x B.2(30﹣x)=24+x C.30﹣x=2(24+x)D.30+x=2(24﹣x) 13.某商店有两个进价不同的计算器都卖了135元,其中一个盈利25%,另一个亏本25%,在这次买卖中,这家商店( ) A.不赔不赚B.赚了9元C.赚了18元D.赔了18元14.下列计算正确的是() A.-1+2=1 B.-1-1=0 C.(-1)2=-1 D.-12=1 15.如图,下列各三角形中的三个数之间均具有相同的规律,根据此规律,最后一个三角形中y与n之间的关系是() A.y=2n+1 B.y=2n+n C.y=2n+1+n D.y=2n+n+1 二、填空题

数据结构实验七图的创建与遍历

实验七图的创建与遍历 实验目的: 通过上机实验进一步掌握图的存储结构及基本操作的实现。 实验内容与要求: 要求: ⑴能根据输入的顶点、边/弧的信息建立图; ⑵实现图中顶点、边/弧的插入、删除; ⑶实现对该图的深度优先遍历; ⑷实现对该图的广度优先遍历。 备注:单号基于邻接矩阵,双号基于邻接表存储结构实现上述操作。算法设计: #include #include #define INFINITY 32767 #define MAX_VEX 20 //最大顶点个数 #define QUEUE_SIZE (MAX_VEX+1) //队列长度 using namespace std; bool *visited; //访问标志数组 //图的邻接矩阵存储结构 typedef struct{ char *vexs; //顶点向量 int arcs[MAX_VEX][MAX_VEX]; //邻接矩阵 int vexnum,arcnum; //图的当前顶点数和弧数 }Graph; //队列类 class Queue{ public: void InitQueue() { base=(int *)malloc(QUEUE_SIZE*sizeof(int)); front=rear=0;

. } void EnQueue(int e) { base[rear]=e; rear=(rear+1)%QUEUE_SIZE; } void DeQueue(int &e) { e=base[front]; front=(front+1)%QUEUE_SIZE; } public: int *base; int front; int rear; }; //图G中查找元素c的位置 int Locate(Graph G,char c) { for(int i=0;i

实验七 查找

实验报告七查找实验 一、实验目的: 1、熟悉线性查找算法。 2、掌握顺序查找、二分查找算法 二、实验内容: 1.SeqList类中增加下列成员方法: public int lastIndexOf(T key) { //返回最后出现的关键字为key元素位置int num=0; for(int i=0;i p=this.head; while(p.next!=null){ if(p.next.data==key) p.next=p.next.next; } } public void replace (T x, T y) //将首次出现的元素x替换为y

数据结构实验报告[3]

云南大学 数据结构实验报告 第三次实验 学号: 姓名: 一、实验目的 1、复习结构体、指针; 2、掌握链表的创建、遍历等操作; 3、了解函数指针。 二、实验内容 1、(必做题)每个学生的成绩信息包括:学号、语文、数学、英语、总分、加权平均分;采用链表存储若干学生的成绩信息;输入学生的学号、语文、数学、英语成绩;计算学生的总分和加权平均分(语文占30%,数学占50%,英语占20%);输出学生的成绩信息。 三、算法描述 (采用自然语言描述) 首先创建链表存储n个学生的成绩信息,再通过键盘输入学生的信息,创建指针p所指结点存储学生的成绩信息,从键盘读入学生人数,求出学生的总分和加权平均分,输出结果。 四、详细设计 (画出程序流程图)

五、程序代码 (给出必要注释) #include #include typedef struct score {int number; int chinese; int math; int english; int total; float average; struct score *next; } student; //创建链表存储n个学生的信息,通过键盘输入信息student*input_score(int n) {int i; student*stu,*p; for(i=0,stu=NULL;inumber);

成都七中实验小升初数学试题

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆装◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆订◆◆◆◆◆◆◆◆◆◆◆◆◆线◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 成都七中实验学校小学部 数 学 20分,全卷总分120分.考试时间60分钟。 A 卷(100分) 1、一种商品的价格先提高10%,再降价10%,结果与原价相比是( ) A 、不变 B 、提高了 C 、降低了 D 、无法确定 2、在a 与b 两个整数中,a 的所有的质因数2、 3、5、7、11,b 的所有质因数是2、3、7、13,那么a 与b 的最大公约数是( ) A 、210 B 、6 C 、55 D 、42 3、如果0>>>>>>> 4、把你的一个拳头慢慢地伸进装满水的面盆中,溢出的水的体积是( ) A 、小于1毫升,大于1升, B 、大于1立方米,小于1升 C 、大于1升、小于1立方米, D 、大于1毫升、小于1升 5、定义运算※为a ※b = a b b a +-,且3※2,那么m 的值是 ( ) A 、3 B 、6 C 、9 D 、2 二、填空题(每题2分,共10分) 6、把一个最简分数的分子2倍,分母缩小2倍后等于4 2 5 ,这个分数是。 7、边长为整数并且最大边长是5的三角形共有个。 8、一个圆锥高2分米,底面周长9.42分米,它的体积是。 9、4时10分,时针与分针的夹角的度数是。 10、有一串分数1121123211234321;,,;,,,,;,,,,,, 1222333334444444;……中,6 19 是第个数。 三、判断题(正确的画∨,错误的画×,每题2,共10分) 11、图中的长方形中的甲与乙两个三角形比较,甲比乙大。( ) 12、五个连续整数的和是m ,则其中最大的数是 25 m +。 ( )

成都七中实验学校七年级数学上册期末测试卷及答案

成都七中实验学校七年级数学上册期末测试卷及答案 一、选择题 1.如图,直线AB ⊥直线CD ,垂足为O ,直线EF 经过点O ,若35BOE ∠=,则 FOD ∠=( ) A .35° B .45° C .55° D .125° 2.晚上七点刚过,小强开始做数学作业,一看钟,发现此时时针和分针在同一直线上;做完数学作业八点不到,此时时针和分针又在同一直线上,则小强做数学作业花了多少时间( ) A .30分钟 B .35分钟 C . 420 11 分钟 D . 360 11 分钟 3.9327-,3-,(3)--,化简后结果为3-的是( ) A 9B 327- C .3- D .(3)-- 4.下列说法中正确的有( ) A .连接两点的线段叫做两点间的距离 B .过一点有且只有一条直线与已知直线垂直 C .对顶角相等 D .线段AB 的延长线与射线BA 是同一条射线 5.已知关于x 的方程mx+3=2(m ﹣x )的解满足(x+3)2=4,则m 的值是( ) A . 1 3 或﹣1 B .1或﹣1 C . 13或73 D .5或 73 6.有 m 辆客车及 n 个人,若每辆客车乘 40 人,则还有 25 人不能上车;若每辆客车乘 45 人,则还有 5 人不能上车.有下列四个等式:① 40m +25=45m +5 ;② 2554045n n +-=;③255 4045 n n ++=;④ 40m +25 = 45m - 5 .其中正确的是( ) A .①③ B .①② C .②④ D .③④ 7.下列方程变形正确的是( ) A .方程 110.20.5x x --=化成1010101025 x x --= B .方程 3﹣x=2﹣5(x ﹣1),去括号,得 3﹣x=2﹣5x ﹣1 C .方程 3x ﹣2=2x+1 移项得 3x ﹣2x=1+2

实验7算法答案

一、实验名称:Apriori和Fp-growth算法 二、实验日期:2013年10 月18 日 三、实验目的: 通过本次实验掌握Apriori和Fp-growth算法的思想 四、实验用的仪器和材料: 硬件:PC电脑一台; 配置:内存,2G及以上硬盘250G及以上 软件环境:操作系统windows server 2003 数据库环境:Microsoft SQL SERVER 2005 五、实验的步骤和方法: 假设事务集合T如下表所示: 事务ID事务的项目集 T1A,B,E T2B,D T3B,C T4A,B,D T5A,C T6B,C T7A,C T8A,B,C,E 1、根据以上事务集合,通过Apriori算法实现: 1)假定最小事务支持数是2,写出搜索所有频繁项集的过程。

2)假定最小置信度为60%,写出1)题中已求出的频繁3-项集的所有项组成的强关联规则。 在事务数据库中,频繁项集L={A,B,E},可以由L产生哪些关联规则? L的非空子集S有:{A, B}, {A, E}, {B, E}, {A}, {B},{E}。可得到关联规则如下: A ∧ B → E conf=2/3=66% A ∧ E → B conf=2/2=100% B ∧ E → A conf=2/2=100% A → B ∧ E conf=2/5=40% B → A ∧ E conf=2/6=33% E → A ∧ B conf=2/2=100% 假设最小置信度为60%,则最终输出的关联规则为: A ∧ B → E 66% A ∧ E → B 100% B ∧ E → A 100% E → A ∧ B 100% 2、根据以上事务集合,通过Fp-growth算法实现:

成都七中实验学校任务型阅读中考英语专项训练含答案解析

成都七中实验学校任务型阅读中考英语专项训练含答案解析 一、英语任务型阅读 1.阅读理解 Mo Ya, Nobel Prize winner in literature (文学)in 2012, believes his success comes from a large amount of reading. Mo was born into a farming family in a village in Shandong Province. Mo left school at the age of 12 and started to work in the fields. Mo was tired after his daily hard work, but he was always hungry for books. However, there were very few books in the village, he never gave up. He read his elder brother's textbooks and even dictionaries. He helped others with farm work in exchange for books. After Mo left his hometown and joined the army in 1976, he began to read widely, including works by Lu Xun and many other famous writers. He studied from these writers but did not copy them. Instead, he developed his own style. 【解析】【分析】主要讲了莫言——中国第一个诺贝尔文学奖。 (1)根据Mo Yan,Nobel Prize winner in literature(文学)in 2012,可知莫言是中国第一位获得诺贝尔文学奖的人,Nobel Prize winner诺贝尔奖获得者,故填winner。 (2)根据Mo was born into a farming family in a village in Shandong Province,可知莫言是出生在一个农民家庭里,所以他的父母都是农民,parents是复数,所以农民也用复数,故填farmers。 (3)根据but he was always hungry for books.可知莫言一直对书籍很饥渴,be hungry for sth.对……很饥渴,故填hungry for。 (4)根据he developed his own style.可知莫言的书是有自己的风格的,故填style。 (5)根据believes his success comes from a large amount of reading.可知莫言的成功和他大量阅读书籍是离不开的,故填reading。 【点评】考查任务型阅读,首先读懂题意,然后带着问题从文中仔细寻找答案。 2.下面文章中有4处需要添加小标题。请从以下选项(A、B.C、D、E)中选出 符合各段意思的小标题。选项中有一项是多余项。 A. Places to Stay B. Places to Visit C. Weather D. Shopping E. History

数据结构课程实验报告(7)

课程实验报告课程名称:数据结构 专业班级:信安 学号: 姓名: 指导教师: 报告日期:2015.4.5 计算机科学与技术学院

目录 1 课程实验概述 (1) 2 实验一基于顺序结构的线性表实现 2.1 问题描述 (2) 2.2 系统设计 (2) 2.3 系统实现 (7) 2.4 效率分析 (11) 3 实验二基于链式结构的线性表实现 3.1 问题描述 (12) 3.2 系统设计 (12) 3.3 系统实现 (14) 3.4 效率分析 (22) 4 实验三基于二叉链表的二叉树实现 4.1 问题描述 (23) 4.2 系统设计 (23) 4.3 系统实现 (32) 4.4 效率分析 (43) 5 实验总结与评价 (45)

1 课程实验概述 上机实验是对学生的一种全面综合训练,是与课堂听课、自学和练习相辅相成的必不可少的一个教学环节。实验目的着眼于原理与应用的结合,使学生学会如何把书上的知识用语解决实际问题,能够理解和运用常用的数据结构,如线性表、栈、队列、树、图、查找表等,并在此基础上建立相应的算法;通过上机实验使学生了解算法和程序的区别,培养学生把算法转换为程序的能力,提高学生解决实际问题的能力;学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及其相应的算法,并初步掌握算法的时间分析和空间分析的技术。

2 实验一基于顺序结构的线性表实现 2.1 问题描述 编写一个程序,实现顺序表的各种基本运算,并在此基础上完成以下功能: 1) 初始化顺序表; 2) 释放顺序表; 3) 判断顺序表L是否为空; 4) 输出顺序表L的长度; 5) 输出顺序表L的第i个元素; 6) 输出元素e的位置; 7) 输出元素e的前一个元素; 8) 输出元素e的后一个元素; 9) 在第i个元素位置上插入f元素; 10) 删除L的第i个元素; 11) 输出顺序表L; 12) 保存顺序表L的数据。 2.2 系统设计 1、数据类型 顺序表:typedef struct { ElemType * elem; //线性表首地址 int length; //线性表当前长度 int listsize; //线性表最大长度 }SqList; 数据类型:int(可以在头文件中更改数据类型) 输入形式:文件读取、键盘输入 输入范围:-2^15~2^16 2、函数返回状态 判断为真:TRUE 0 判断为假:FALSE -1 函数正确执行:OK -2 函数执行错误:ERROR -3 元素不存在:NOTEXIST -4 内存分配溢出:OVERFLOW -5

查找和排序算法的实现(实验七)

实验七查找和排序算法的实现 一.实验目的及要求 (1)学生在实验中体会各种查找和内部排序算法的基本思想、适用场合,理解开发高效算法的可能性和寻找、构造高效算法的方法。 (2)掌握运用查找和排序解决一些实际应用问题。 二.实验内容: (1)编程实现一种查找算法(如折半查找、二叉排序树的查找、哈希查找等),并计算相应的ASL。 (2)编程实现一种内部排序算法(如插入排序、快速排序等)。 三.实验主要流程、基本操作或核心代码、算法片段(该部分如不够填写,请另加附页) (1)编程实现一种查找算法(如折半查找、二叉排序树的查找、哈希查找等),并计算相应的ASL。 ?程序代码: 折半查找: 头文件: #define EQ(a,b) ((a)==(b)) #define LT(a,b) ((a)<(b)) #define maxlength 20 typedef int ElemType; typedef struct{ ElemType key; ElemType other; }card;//每条记录包含的数据项 typedef struct{ card r[maxlength]; int length; }SSTable;//一张表中包含的记录容量 void Create(SSTable &L); int Search(SSTable L,int elem); 功能函数: #include"1.h" #include"stdio.h"

void Create(SSTable &L) { printf("新的线性表已经创建,请确定元素个数(不超过20)\n"); scanf("%d",&L.length); printf("请按递增序列输入具体的相应个数的整数元素(空格隔开)\n"); for(int i=0;ielem) { printf("表中没有该元素(不在范围内)\n"); return 0; } int low=0,high=L.length-1; int mid; while(low<=high) { mid=(low+high)/2; if(EQ(L.r[mid].key,elem)){printf("该元素在第%d位\n",mid+1); return 0;} else if(LT(elem,L.r[mid].key)) { high=mid-1; } else { low=mid+1; } } printf("表中没有该元素(不在范围内)\n"); return 0; } 主函数: #include"stdio.h" #include"1.h" int main() {

相关文档
最新文档