数据结构实验报告.docx

上传人:b****4 文档编号:27306659 上传时间:2023-06-29 格式:DOCX 页数:13 大小:41.84KB
下载 相关 举报
数据结构实验报告.docx_第1页
第1页 / 共13页
数据结构实验报告.docx_第2页
第2页 / 共13页
数据结构实验报告.docx_第3页
第3页 / 共13页
数据结构实验报告.docx_第4页
第4页 / 共13页
数据结构实验报告.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

数据结构实验报告.docx

《数据结构实验报告.docx》由会员分享,可在线阅读,更多相关《数据结构实验报告.docx(13页珍藏版)》请在冰豆网上搜索。

数据结构实验报告.docx

数据结构实验报告

实验一C语言编程

实验名称:

实验一C语言编程

实验目的:

复习C语言程序设计,回顾C语言结构数据及指针数据的应用。

实验原理:

C语言结构化程序设计思想,结构数据类型,指针数据类型。

实验设备:

电脑,TURBOC2.0/WIN-TC/VISUALC++

实验内容:

1.某组有10个人,每个人有3门课的考试成绩。

求该组单科的平均成绩和各科总平均成绩。

2.用指针变量输出结构数组,结构数组存放了5个学生的信息,学生的信息包括学号、姓名、性别和入学分数。

实验代码:

实验结果:

实验心得:

实验二顺序存储

实验名称:

实验二顺序存储

实验目的:

掌握线性表顺序存储结构的描述,学会针对顺序存储线性表的基本操作。

实验原理:

C语言结构化程序设计思想,结构体及数组的应用。

实验设备:

电脑,TURBOC2.0/WIN-TC/VISUALC++

实验内容:

1、输入两组有序序列,建立两个有序顺序表,将它们合并,且保持有序。

实验代码:

实验结果:

实验心得:

实验三链式存储

实验名称:

实验三链式存储

实验目的:

掌握线性表链式存储结构的描述,学会针对链式存储线性表的基本操作。

实验原理:

C语言结构化程序设计思想,结构体及指针的应用。

实验设备:

电脑,TURBOC2.0/WIN-TC/VISUALC++

实验内容:

1、已知两个依元素值递增有序排列的链表A和B,且同一表中的元素值各不相同。

构造一个单链表C,其元素为A和B中元素的交集,且表C中的元素也依值递增有序排列。

实验代码:

实验结果:

实验心得:

实验四模式匹配算法应用

实验名称:

实验四模式匹配算法应用

实验目的:

掌握字符串存储结构的描述,学会字符串的模式匹配算法的应用。

实验原理:

C语言结构化程序设计思想,结构体及指针和字符数组的应用。

实验设备:

电脑,TURBOC2.0/WIN-TC/VISUALC++

实验内容:

1、朴素模式匹配算法

实验代码:

#include"stdio.h"

intprim(chars1[],chars2[])

{

inti,j;

i=0;

while(s1[i]!

='\0')

{

j=0;

while(s2[j]!

='\0'&&s1[i+j]==s2[j])

j++;

if(s2[j]=='\0')

returni;

i++;

}

return-1;

}

voidmain()

{

chars1[80],s2[20];

intn;

gets(s1);

gets(s2);

if((n=prim(s1,s2))>=0)

printf("s1中存在子串s2,从第%d个字符起\n",n+1);

else

printf("s1中不存在子串s2\n");

}

实验结果:

 

实验心得:

实验五特殊矩阵

实验名称:

实验五特殊矩阵

实验目的:

掌握特殊矩阵存储结构的描述,学会针对特殊矩阵的基本操作。

实验原理:

C语言结构化程序设计思想,结构体及数组的应用。

实验设备:

电脑,TURBOC2.0/WIN-TC/VISUALC++

实验内容:

1、稀疏矩阵的存储及转置运算

实验代码:

#include"stdio.h"

#defineMAXSIZE12500

typedefintElemType;

typedefstruct

{

inti,j;

ElemTypee;

}Triple;//三元组类型

typedefunion

{

Tripledata[MAXSIZE+1];

intmu,nu,tu;

}TSMatrix;//稀疏矩阵类型

voidFastTransposeSMatrix(TSMatrixM,TSMatrix*T)

{

intnum[MAXSIZE],cpot[MAXSIZE];

intcol,t,p,q;

T->mu=M.nu;

T->nu=M.mu;

T->tu=M.tu;

if(T->tu)

{

for(col=1;col<=M.nu;++col)

num[col]=0;

for(t=1;t<=M.tu;++t)

++num[M.data[t].j];

cpot[1]=1;

for(col=2;col<=M.nu;++col)

cpot[col]=cpot[col-1]+num[col-1];

for(p=1;p<=M.tu;++p)

{

col=M.data[p].j;

q=cpot[col];

T->data[q].i=M.data[p].j;

T->data[q].j=M.data[p].i;

T->data[q].e=M.data[p].e;

++cpot[col];

}

}//if

}//FastTransposeSMatrix

voidmain()

{

TSMatrixM,T;

inti;

scanf("%d%d%d",&M.mu,&M.nu,&M.tu);

for(i=1;i<=M.tu;i++)

scanf("%d%d%d",&M.data[i].i,&M.data[i].j,&M.data[i].e);

FastTransposeSMatrix(M,&T);

for(i=1;i<=T.tu;i++)

printf("%5d%5d%5d\n",T.data[i].i,T.data[i].j,T.data[i].e);

}

实验结果:

 

实验心得:

实验六内排序

实验名称:

实验六内排序

实验目的:

通过本次实验,掌握线性表的排序方法,并分析时间复杂度。

实验原理:

C语言结构化程序设计思想,数组的应用。

实验设备:

电脑,TURBOC2.0/WIN-TC/VISUALC++

实验内容:

1、将快速排序算法写成完整的程序上机通过,并统计递归深度。

实验代码:

实验结果:

实验心得:

实验七树与二叉树

实验名称:

实验七树与二叉树

实验目的:

1.进一步掌握树的结构及非线性特点,递归特点和动态性。

2.进一步巩固对指针的使用和二叉树的三种遍历方法、建立方法及用广义表进行输入输出。

实验原理:

C语言结构化程序设计思想,二叉树的应用。

实验设备:

电脑,TURBOC2.0/WIN-TC/VISUALC++

实验内容:

1、二叉树的实现和遍历

实验代码:

实验结果:

 

实验心得:

实验八图的遍历

实验名称:

实验八图的遍历

实验目的:

熟悉图的存储结构,掌握有关算法的实现,了解图在计算机科学及其他工程技术中的应用。

实验原理:

C语言结构化程序设计思想,图的应用。

实验设备:

电脑,TURBOC2.0/WIN-TC/VISUALC++

实验内容:

1、给定一个图,设计一个程序,找出一条从某一顶点A到另一顶点B边数最少的一条路径。

实验代码:

实验结果:

#include

intnumber;

typedefstruct{

   intq[20];

   intf,r;

 }queue;

intnodelist[20][20];

queueQ;

intz[20];

inta,b,n,i,j,x,y;

intfinished;

voidenq(queue*Q,intx){

   Q->q[Q->r]=x;

   if(Q->r==19)

      Q->r=0;

   else

      Q->r++;

   if(Q->r==Q->f)

      printf("Overflow!

\n");

}

front(queue*Q){

   if(Q->r==Q->f)

      printf("Underflow!

\n");

   else

      return(Q->q[Q->f]);

}

voiddeq(queue*Q){

   if(Q->r==Q->f)

      printf("Underflow!

\n");

   else{

      if(Q->f==19)

          Q->f=0;

      else

          Q->f++;

    }

}

intqempty(queueQ){

   if(Q.f==Q.r)

      return1;

   else

      return0;

}

voidreadgraph(){

   printf("\nPleaseinputn:

");

   scanf("%d",&n);

   printf("Pleaseinputnodelist[i][j]:

\n");

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

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

          scanf("%d",&nodelist[i][j]);

      }

      printf("\n");

   printf("List-linkisbulit\n");

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

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

          printf("%3d",nodelist[i][j]);

      printf("\n");

    }

}

voidshortest(inta,intb){

   if(a==b)

      nodelist[a][a]=2;

   else{

      enq(&Q,a);

      nodelist[a][a]=2;

      finished=0;

      while(!

qempty(Q)&&!

finished){

          a=front(&Q);

          deq(&Q);

          j=1;

          while((j<=n)&&!

finished){

             if((nodelist[a][j]==1)&&(nodelist[j][j]!

=2)){

                 enq(&Q,j);

                 nodelist[j][j]=2;

                 z[j]=a;

             if(j==b)/*&&(nodelist[a][j]==1))*/

                   finished=1;

             }

             if(!

finished)

                 j++;

           }

       }

    if(!

finished)printf("Thereisnopath.");

 

    }

}

voidwritepath(inta,intb){

   i=b;

   while(i!

=a){

      printf("%d<-",i);

      i=z[i];

    }

   printf("%d",a);

}

main()

{

   readgraph();

   printf("Pleaseinputa:

");

   scanf("%d",&a);

   printf("Pleaseinputb:

");

   scanf("%d",&b);

   Q.f=0;Q.r=0;

   shortest(a,b);

   if(finished)

   writepath(a,b);

}

实验结果:

 

实验心得:

实验九检索

实验名称:

实验九检索

实验目的:

通过本次实验,掌握查找表上的有关查找方法,并分析时间复杂度。

实验原理:

C语言结构化程序设计思想,查找的应用。

实验设备:

电脑,TURBOC2.0/WIN-TC/VISUALC++

实验内容:

1、将折半查找算法写成完整的程序,并上机通过。

实验代码:

实验结果:

 

实验心得:

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

当前位置:首页 > 高等教育 > 院校资料

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

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