知识大全 《数据结构》哈工大2013年实践上机试题
Posted 整数
篇首语:如果梦想有捷径的话,那么这条路的名字一定叫坚持。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 《数据结构》哈工大2013年实践上机试题相关的知识,希望对你有一定的参考价值。
随机产生 个整数 在计算机内建立有序链表 并输出该链表#include io h
#include stdlib h
#include stdio h
#include math h
typedef struct nodetest
int data;
struct nodetest * next;
node;
void sort(node * * head)
node *p *q *r *s *h;
h=p=(node *)malloc(sizeof(node));
p >next=*head;
while(p >next!=NULL)
q=p >next;
r=p;
while(q >next!=NULL)
if(q >next >data
q=q >next;
if(r!=p)
s=r >next;
r >next=s >next;
s >next=p >next;
p >next=s;
p=p >next;
*head=h >next;
free(h);
void main()
node * h;
node *p;
node *s;
int x cycle;
h=(node *)malloc(sizeof(node));
p=h;
srand( );
for(cycle= ;cycle< ;cycle++)
x=rand();
s=(node *)malloc(sizeof(node));
s >data=x;
p >next=s;
p=s;
h=h >next;
p >next=NULL;
s=h;
for(cycle= ;cycle< ;cycle++)
printf( %d\\n s >data);
s=s >next;
sort(&h);
s=h;
for(cycle= ;cycle< ;cycle++)
printf( %d\\n s >data);
s=s >next;
随机产生 个整数 利用冒泡法排序
#include stdlib h
#include stdio h
#include math h
int n[ ];
void sort()
int i j w;
for(i= ;i< ;i++)
for(j= ;j>=i+ ;j )
if(n[j]
w=n[j];
n[j]=n[j-1];
n[j-1]=w;
void main()
int x;
srand(0.001);
for(x=0;x<10;x++)
n[x]=rand();
for(x=0;x<10;x++)
printf("%d\\n",n[x]);
sort();
for(x=0;x<10;x++)
printf("%d\\n",n[x]);
#include "stdlib.h"
#include "stdio.h"
#include "math.h"
typedef struct tnode
char data;
struct tnode * left,* right;
btree;
void inord (btree *p)
if (p!=NULL)
printf("%c\\n",p->data);
inord(p->right);
inord(p->left);
;
void main()
btree *p,*h,*f;
h=(btree *)malloc(sizeof(btree));
p=h;
p->data=\'A\';
p->left=NULL;
p->right=NULL;
f=(btree*)malloc(sizeof(btree));
f->data=\'B\';
f->left=NULL;
f->right=NULL;
p->left=f;
f=(btree*)malloc(sizeof(btree));
f->data=\'C\';
f->left=NULL;
f->right=NULL;
p->right=f;
p=p->left;
f=(btree*)malloc(sizeof(btree));
f->data=\'D\';
f->left=NULL;
f->right=NULL;
p->left=f;
f=(btree*)malloc(sizeof(btree));
f->data=\'E\';
f->left=NULL;
f->right=NULL;
p->right=f;
p=h;
inord(p);
3.随机产生10个整数,利用直接插入排序方法对序列进行升序排列,并输出结果.
#include "stdlib.h"
#include "stdio.h"
#include "math.h"
int n[11];
void sort()
int i,j;
for(i=2;i<=10;i++)
if(n[i]
n[0]=n[i];
j=i-1;
do
n[j+1]=n[j];
j--;
while(n[0]
n[j+1]=n[0];
void main()
int x;
srand(0.001);
for(x=1;x<=10;x++)
n[x]=rand();
n[x]=10-x;
for(x=1;x<=10;x++)
printf("%d\\n",n[x]);
sort();
printf("\\n");
for(x=1;x<=10;x++)
printf("%d\\n",n[x]);
4 随机产生10个整数,利用直接选择排序方法对序列进行升序排列,并输出结果.
#include "stdlib.h"
#include "stdio.h"
#include "math.h"
int n[10];
void sort()
int i,j,k,temp;
for(i=0;i<10;i++)
k=i;
for(j=i+1;j<10;j++)
if(n[j]
temp=n[i];
n[i]=n[k];
n[k]=temp;
void main()
int x;
//srand(0.001);
for(x=0;x<10;x++)
// n[x]=rand();
n[x]=10-x;
for(x=0;x<10;x++)
printf("%d\\n",n[x]);
sort();
for(x=0;x<10;x++)
printf("%d\\n",n[x]);
5 已知二叉树如图1 ,采用二叉链存储,在计算机中建立起该二叉树,并完成中序遍历,输出相应序列.
#include "stdlib.h"
#include "stdio.h"
#include "math.h"
typedef struct tnode
char data;
struct tnode * left,* right;
btree;
void inord(btree * p)
if(p!=NULL)
inord(p->left);
printf("%c",p->data);
inord(p->right);
void main()
int i;
btree * p,* h,* f,* f1;
h=(btree *)malloc(sizeof(btree));
p=h;
p->data=\'a\';
p->left=NULL;
p->right=NULL;
f=(btree *)malloc(sizeof(btree));
f->data=\'b\';
f->left=NULL;
f->right=NULL;
p->left=f;
f1->data=\'c\';
f1->left=NULL;
f1->right=NULL;
p->right=f1;
p=p->left;
f=(btree *)malloc(sizeof(btree));
f->data=\'d\';
f->left=NULL;
f->right=NULL;
p->left=f;
f=(btree *)malloc(sizeof(btree));
f->data=\'e\';
f->left=NULL;
f->right=NULL;
p->right=f;
p=h;
inord(p);
6 已知二叉树如图1,采用二叉链存储,在计算机中建立起该二叉树,并完成前序遍历,输出相应序列.
#include "stdlib.h"
#include "stdio.h"
#include "math.h"
typedef struct tnode
char data;
struct tnode * left,* right;
btree;
void inord(btree * p)
if(p!=NULL)
printf("%c",p->data);
inord(p->left);
inord(p->right);
void main()
int i;
btree * p,* h,* f,* f1;
h=(btree *)malloc(sizeof(btree));
p=h;
p->data=\'a\';
p->left=NULL;
p->right=NULL;
f=(btree *)malloc(sizeof(btree));
f->data=\'b\';
f->left=NULL;
f->right=NULL;
p->left=f;
f1->data=\'c\';
相关参考
求拓朴排序后结果及用矩阵表示……输入形式为n……(就是上机练习题上的哪个题不过多加了一个用矩阵表示)…… 输入一串整数以相反次序输出 第题我做的答案是这样的第题太简单就不用了 //有的未加判
cha138/Article/program/sjjg/201311/23841
第一部分选择题(共分) 一单项选择题(本大题共小题每小题分共分) 在每小题列出的四个备选项中只有一个是符合题目要求的请将其代码填写在题后的括号内错选多选或未选均无分 数据元素及其关系在计算机
哈尔滨工业大学年数据结构考研试题 一名词解释(分) 抽象数据类型; 算法的时间复杂性; 散列法(hashing); 索引文件 二填空(分) 在单链表中设置头结点的作用是_______
一单项选择题(本大题共小题每小题分共分) 在每小题列出的四个备选项中只有一个是符合题目要求的请将其代码填写在题后的括号内错选多选或未选均无分 数据的四种基本逻辑结构是指() A数组链表树图形
已知无向图G的邻接表如题图所示请画出该无向图并写出其按广度优先搜索时的访问序列其中nil表示空题图(图片点击下载) 四算法设计题(本大题共小题每小题分共分) 编写一个函数voidinsert(in
一单项选择题(本大题共小题每小题分共分) 在每小题列出的四个备选项中只有一个是符合题目要求的请将其代码填写在题后的括号内错选多选或未选均无分 在数据结构中数据的基本单位是() A数据项B数据
知识大全 哈尔滨工业大学2013年数据结构考研试题答案[1]
哈尔滨工业大学年考研试题数据结构答案 一名词解释 抽象数据型一个数学模型和在该模型上定义的操作集合的总称 算法的时间复杂性算法中基本操作重复执行的次数是问题规模n的某个函数f(n)算法的时间
求拓朴排序后结果及用矩阵表示输入形式为n(就是上机练习题上的哪个题不过多加了一个用矩阵表示) 输入一串整数以相反次序输出 第题我做的答案是这样的第题太简单就不用了 //有点未加判断矩阵输出及
在一个具有n个顶点的无向图中要连通全部顶点至少需要的边数为() AnBn Cn+D若构造一棵具有n个结点的二叉排序树最坏的情况下其深度不超过() ABn CDn+ 闭散列表中由于散列到同一个