计算机软件报告
软
件
基
础
上
机
报
告
一、实验题目:数组的合并
二、实验目的:
1、进一步掌握数组的定义及其表示方法。
2、学会数组的合并算法。
三、实验环境:visual c++6.0
四、实验操作:
(1)、程序设计:
#include
#define a 6
#define b 10
#define c a+b
int main()
{
int la[a]={3,5,8,11,13,61};
int lb[b]={1,4,6,7,9,11,50,51,65,85};
pa=la;
pb=lb;
pc=lc;
while(pa
{
if(*pa>*pb)
{
*pc=*pb;
pb++;pc++;
}
else if(*pa==*pb
else
{
*pc=*pa;
pa++;pc++;
}
}
cout<
for(int k=0;k<15;k++)
{
cout<
}
cout<
return 0;
}
一、实验题目2:线性表的合并
二、实验目的:
1、学会线性表的合并及线性表的表示方法
2、掌握线性表的合并方法
三、实验环境:visual c++6.0
四、实验操作:
(1)、程序设计:
#include
struct node
{ int data;
node *next;
};
void main()
{
int a[]={1,23,34,45,56,64};
node *heada;
heada=NULL;
for(int i=4;i>=0;i--)
{node *p;
p=new node;
p->data=a[i];
p->next=heada;
while(p!=NULL)
{cout<data<
p=p->next;
}
int b[]={2,20,30,40,50,60};
node *headb;
headb=NULL;
for(int j=4;j>=0;j--)
{node *q;
q=new node;
q->data=b[j];
q->next=headb;
headb=q;}
node *q;
q=headb;
while(q!=NULL)
{cout<data<
q=q->next;
}
node *headc;
headc=NULL;
node *m,*d;
m=headc;
p=heada;
q=headb;
while((p!=NULL)&&(q!=NULL))
q=q->next;}
else {m->data=p->data;
p=p->next;}
if(headc==NULL) {headc=m;d=m;}
else {d->next=m;d=m;}
m=headc;}
while(m!=NULL)
{cout<data<
m=m->next;
}
}
、运行结果:
一、实验题目3:二叉链表的生成
二、实验目的:
1、学会二叉树的定义和基本性质。
2、掌握二叉链表的生成办法。
三、实验环境:visual c++6.0
四、实验操作:
(1)、程序设计:
//Binary_Tree.h
#include
using namespace std;
//定义二叉链表结点类型
// template
// void creat_Binary_Tree(T);
//void pretrav_Binary_Tree();
//void intrav_Binary_Tree();
//void postrav_Binary_Tree();
template
struct Btnode
{T d;
Btnode*lchild;
Btnode*rchild;
};
//二叉链表类
template
class Binary_Tree
{private:
Btnode*BT;
public:
Binary_Tree(){BT=NULL;return;}
void in