计算机软件实验报告文档格式.docx

上传人:b****1 文档编号:13624035 上传时间:2022-10-12 格式:DOCX 页数:25 大小:795.46KB
下载 相关 举报
计算机软件实验报告文档格式.docx_第1页
第1页 / 共25页
计算机软件实验报告文档格式.docx_第2页
第2页 / 共25页
计算机软件实验报告文档格式.docx_第3页
第3页 / 共25页
计算机软件实验报告文档格式.docx_第4页
第4页 / 共25页
计算机软件实验报告文档格式.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

计算机软件实验报告文档格式.docx

《计算机软件实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《计算机软件实验报告文档格式.docx(25页珍藏版)》请在冰豆网上搜索。

计算机软件实验报告文档格式.docx

2.假设有两个按数据元素值递增有序排列的线性表A和B,均以单链表作为存储结构。

编写算法将A表和B表归并成一个按元素值递减有序(即非递增有序,允许值相同)排列的线性表C,并要求利用原表(即A表和B表)结点空间存放表C。

3.将一个线性表中的值就地逆置。

4.在线性表的顺序存储结构的第一个位置上插入一个元素。

(注意区分链表和顺序表)

五、实验提示

编写一个可运行的程序,建立链表与顺序表,并由用户输入递增有序排列的链表A、链表B、顺序表的内容。

最好有一定的容错功能和友好的界面。

实现实验内容的各项操作并输出操作后的表的内容。

选做:

链表的排序,以实现输入非有序表也可进行内容2的要求。

六、报告要求

1、实验目的

2、实验内容

3、代码

4、调试过程中遇到的问题与解决方法

以打印稿形式于考试时上交。

七、参考代码

*ElemType替换为需要的变量名*

#include<

stdio.i;

}

**********求线性表中第i个元素运算**********

SLink*GetElem(SLink*sq,inti)

{

intj=1;

SLink*p=sq->

next;

if(i<

i||i>

GetLength(sq))

returnNULL;

while(j<

i)

{

p=p->

j++;

}

returnp;

**********按值查找运算**********

SLink*Locate(SLink*sq,ElemTypex,inti)

1||i>

while(p!

=NULL&

&

p->

data!

=x)

**********插入结点运算**********

intInsElem(SLink*sq,ElemTypex,inti)

SLink*p=sq,*s;

s=(SLink*)malloc(sizeof(SLink));

s->

data=x;

next=NULL;

GetLength(sq)+1)

return0;

next=p->

p->

next=s;

return1;

**********删除结点运算**********

intDelElem(SLink*sq,inti)

SLink*p=sq,*q;

return0;

q=p->

next=q->

free(q);

**********输出元素值运算**********

voidDispList(SLink*sq)

=NULL)

printf("

%d\n"

p->

data);

return;

*()

intn,i,j,k;

SLink*L;

*在主函数中添加内容调用自定义函数,并添加适当的函数以完成功能。

*

实验2栈和队列的基本操作

一、实验目的与基本要求

1.掌握栈和队列的顺序存储和链式存储结构

1.掌握栈和队列的特点。

2.掌握栈和队列的基本运算。

5.硬件:

一台微型计算机

6.软件:

操作系统和C语言系统。

确定存储结构后,上机调试实现栈和队列的基本运算。

1.写出栈的入栈和出栈的算法

2.写出队列的入队和出队算法。

编写一个可运行的程序,建立栈与队列,实现入栈、出栈,入队、出队的算法,并由用户选择操作,输出栈与队列的内容。

**********建栈**********

int*init_stack(s,m,top)

int*s;

intm,*top;

if(s!

free(s);

s=malloc(m*sizeof(int));

*top=0;

flag1=1;

returns;

**********入栈**********

voidpush(s,m,top,x)

ints[],x;

if(flag1==0)

尚未建栈\n"

);

return;

}

if(*top==m)

栈满\n"

*top=*top+1;

s[*top-1]=x;

**********退栈**********

voidpop(s,m,top,y)

ints[],*y;

if(*top==0)

**********栈空\n**********\n"

*y=s[*top-1];

*top=*top-1;

**********读栈顶**********

voidtop(s,m,top,y)

空栈\n"

return;

**********建队**********

int*init_queue(q,m,front,rear,s)

int*q;

intm,*front,*rear,*s;

if(q!

free(q);

q=malloc(m*sizeof(int));

*front=m;

*rear=m;

*s=0;

flag2=1;

returnq;

**********入队**********

voidaddcq(q,m,rear,front,s,x)

intq[],x;

intm,*rear,*front,*s;

if((*s==1)&

(*rear==*front))

队满\n"

*rear=*rear+1;

if(*rear==m+1)

*rear=1;

q[*rear-1]=x;

*s=1;

**********退队**********

voiddelcq(q,m,rear,front,s,y)

intq[],*y;

if(flag2==0)

尚未建队\n"

if(*s==0)

队空\n"

*front=*front+1;

if(*front==m+1)

*front=1;

*y=q[*front-1];

if(*front==*rear)

*s=0;

return;

}

运行结果:

实验3二叉树的构造

1.熟练掌握二叉树的构造方法。

3.硬件:

4.软件:

确定存储结构后,上机调试二叉树的构造方法。

设计一个读入一串整数构成一棵二叉树的程序。

(深度至少为2)

编写一个可运行的程序,建立二叉树,由用户输入二叉树的数据。

输出前、中、后序遍历。

stdio.t;

pretrav(bt)

structbtnode*bt;

if(bt!

bt->

d);

pretrav(bt->

lchild);

rchild);

intrav(bt)

intrav(bt->

postrav(bt)

postrav(bt->

intmain()

structbtnode*t;

ints;

while

(1)

请选择\n1、建立二叉树\n2、前序遍历\n3、中序遍历\n4、后序遍历\n5、退出\n"

scanf("

%d"

&

s);

switch(s)

{

case1:

t=creatbt(t,0);

break;

case2:

pretrav(t);

case3:

intrav(t);

case4:

postrav(t);

default

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 面试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1