篇一 :数据结构实验报告

数据结构实验报告

实 验 报 告

实验课程: 数据结构

实验项目: 实验

专 业: 计算机科学与技术

姓 名: **

学 号: ***

指导教师: **

实验时间: 20**-12-7

重庆工学院计算机学院

数据结构实验报告

实验一 线性表

1. 实验要求

掌握数据结构中线性表的基本概念。

熟练掌握线性表的基本操作:创建、插入、删除、查找、输出、求长度及合并并运算在顺序存储结构上的实验。

熟练掌握链表的各种操作和应用。

2. 实验内容

编写一个函数,从一个给定的顺序表A中删除元素值在x到y之间的所有元素,要求以较高效率来实现。

#include

typedef int elemtype;

#define maxsize 10

int del(int A[],int n,elemtype x,elemtype y)

{

int i=0,k=0;

while(i

{if(A[i]>=x&&A[i]<=y)

k++;

else

A[i-k]=A[i];

i++;

}

return(n-k);

}

void main()

{

int i,j;

int a[maxsize];

printf("输入%d个数:\n",maxsize);

for(i=0;i

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

j=del(a,maxsize,1,3);

printf("输出删除后剩下的数:\n");

for(i=0;i

printf("%d "\n,a[i]);

}

…… …… 余下全文

篇二 :数据结构实验报告(C语言)(强力推荐)

数据结构实验

实验内容和目的:

掌握几种基本的数据结构:集合、线性结构、树形结构等在求解实际问题中的应用,以及培养书写规范文档的技巧。学习基本的查找和排序技术。让我们在实际上机中具有编制相当规模的程序的能力。养成一种良好的程序设计风格。

实验教材:

数据结构题集(C语言版) 清华大学出版社 20##年

实验项目:

实验一、栈和循环队列

㈠、实验内容:

1 栈

掌握栈的特点(先进后出FILO)及基本操作,如入栈、出栈等,栈的顺序存储结构和链式存储结构,以便在实际问题背景下灵活应用。本程序采用的是链栈结构,具有初始化一个栈、PUSH、POP、显示所有栈里的元素四个功能。

2 循环队列

掌握队列的特点(先进先出FIFO)及基本操作,如入队、出队等,学会循环队列的实现,以便在实际问题背景下灵活运用。本程序具有初始化一个队列、入队、出队、显示队列的所有元素、队列长度五个功能。

㈡、实验代码

1 栈

程序代码:

#include <stdio.h>

#include <malloc.h>

#define Stack_Size 6

#define ERROR 0

#define OK 1

typedef int SElemType;

typedef struct SNode

{

SElemType data;

struct SNode *next;

}SNode,*LinkStack;

int CreatTwo(LinkStack &head,int n)

{

int i;

SNode *p;

head=(LinkStack)malloc(sizeof(SNode));

head->next=NULL;

printf("请输入数据(数字):\n");

for(i=n;i>0;--i)

{

p=(SNode *)malloc(sizeof(SNode));

…… …… 余下全文

篇三 :数据结构实验———图实验报告

   

实验报告

             

目的要求

     1.掌握图的存储思想及其存储实现。

    2.掌握图的深度、广度优先遍历算法思想及其程序实现。

    3.掌握图的常见应用算法的思想及其程序实现。

实验内容

1.键盘输入数据,建立一个有向图的邻接表。

    2.输出该邻接表。

    3.在有向图的邻接表的基础上计算各顶点的度,并输出。

    4.以有向图的邻接表为基础实现输出它的拓扑排序序列。

    5.采用邻接表存储实现无向图的深度优先递归遍历。

6.采用邻接表存储实现无向图的广度优先遍历。

7.在主函数中设计一个简单的菜单,分别调试上述算法。

源程序

 主程序的头文件:队列

#include <stdio.h>

#include <stdlib.h>

#define TRUE 1

#define FALSE 0

#define OK 1

#define ERROR 0

#define OVERFLOW -2

typedef int QElemType;

typedef struct QNode{    //队的操作

        QElemType data;

        struct  QNode *next;

…… …… 余下全文

篇四 :数据结构实验报告格式

数据结构实验报告格式

实验1.1 顺序表的基本操作

一、实验目的

1.掌握使用VC++上机调试线性表的基本方法;
2.掌握线性表的基本操作:插入、删除、查找等运算在顺序存储结构上的实现。
二、实验内容
  顺序表的基本操作的实现
三、实验要求
1.认真阅读和理解本实验的程序。
2.上机运行本程序。

(源程序)
四、写出该程序的功能和运行结果。

五、实验总结

   (在实验中遇到了哪些问题,如何解决的)
六、实验评价(教师)

实验1.2 线性表在链式存储结构下的基本操作

一、实验目的

1.掌握使用VC++上机调试线性表的基本方法;
2.掌握线性表的基本操作:插入、删除、查找等运算在链式存储结构上的实现。
二、实验内容
  线性表在链式存储结构下的基本操作

三、实验要求
1.认真阅读和理解实验1.1中给出的程序。并据此写出线性表的各种基本操作在链式存储结构上的程序。
2.上机运行写出的程序,并且独立调试通过。

(源程序)
四、写出该程序的功能和运行结果。

五、实验总结

   (在实验中遇到了哪些问题,如何解决的)
六、实验评价(教师)

实验2.1 栈的基本操作

一、实验目的

1.掌握使用VC++上机调试栈的基本方法;
2. 深入了解栈的特性,掌握栈的各种基本操作。
二、实验内容
  栈在顺序存储结构下的各种基本操作
三、实验要求
1.认真阅读和掌握本实验的算法。
2.上机将本算法实现。并据此写出栈的各种基本操作在顺序存储结构上的程序。
2.上机运行写出的程序,并且独立调试通过。

(源程序)
四、写出该程序的功能和运行结果。

五、实验总结

   (在实验中遇到了哪些问题,如何解决的)
六、实验评价(教师)

实验2.2 队列的基本操作

一、实验目的

1. 深入了解队列的特性,掌握队列的各种基本操作。
二、实验内容
  队列在链式存储结构下的基本操作
三、实验要求
1.认真阅读和掌握本实验的算法。
2.上机将本算法实现。并据此写出队列的各种基本操作在链式存储结构上的程序。
2.上机运行写出的程序,并且独立调试通过。

…… …… 余下全文

篇五 :数据结构实验报告5

附录(可包括源程序清单或其它说明)

#include<iostream>

#include <stdio.h> 

using namespace std;

typedef struct BiTNode{  //二叉链表节点存储结构

       int data;

       struct BiTNode *lchild;

       struct BiTNode *rchild;  //左右孩子指针

}BiTNode,*BiTree;

void insert(BiTree &T,int k){  //二叉排序树的递归算法

       if(T==NULL){

              T=(BiTree)malloc(sizeof(BiTNode));

              T->data=k;

              T->lchild=T->rchild=NULL;

       }

…… …… 余下全文

篇六 :数据结构实验报告全集

数据结构实验报告全集

实验一 线性表基本操作和简单程序

1. 实验目的
(1)掌握使用Visual C++ 6.0上机调试程序的基本方法;
(2)掌握线性表的基本操作:初始化、插入、删除、取数据元素等运算在顺序存储结构和链表存储结构上的程序设计方法。

2. 实验要求
(1) 认真阅读和掌握和本实验相关的教材内容。

(2) 认真阅读和掌握本章相关内容的程序。

(3) 上机运行程序。

(4) 保存和打印出程序的运行结果,并结合程序进行分析。

(5) 按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果

实验代码:

1)头文件模块

#include iostream.h>//头文件

#include<malloc.h>//库头文件-----动态分配内存空间

typedef int elemtype;//定义数据域的类型

typedef struct linknode//定义结点类型

{

    elemtype data;//定义数据域

    struct linknode *next;//定义结点指针

}nodetype;

2)创建单链表

nodetype *create()//建立单链表,由用户输入各结点data域之值,

//以0表示输入结束

{

    elemtype d;//定义数据元素d

    nodetype *h=NULL,*s,*t;//定义结点指针

    int i=1;

    cout<<"建立一个单链表"<<endl;

    while(1)

…… …… 余下全文

篇七 :数据结构实验报告[4]

云南大学

数据结构实验报告

次实验

学号:

姓名:

一、实验目的

 ⒈复习线性表的逻辑结构,存储结构及基本操作;

⒉掌握顺序表和(带头结点)单链表;

⒊了解有序表。

二、实验内容

 ⒈(必做题)假设有序表中数据元素类型是整型,请采用顺序表或(带头结点)单链表实现:

  ⑴OrderInsert(&L,e,int(*compare)())//根据有序判定函数compare,在有序表L的适当位置插入元素e;

  ⑵利用OrderInsert()构造有序表;

  ⑶OrderMerge(&La,&Lb,&Lc,int(*compare)())//根据有序判定函数compare,将两个有序表La和Lb归并为一个有序表Lc。

 ⒉(选做题)请采用(带头结点)单链表实现:

 ⑴升幂多项式的构造,即各个结点存储各项系数与指数,并且链表按指数升序有序;约定系数不能等于0,指数不能小于0)

 ⑵两个升幂多项式的相加。

三、算法描述

(采用自然语言描述)

⒈⑴分别插入第一个链表和第二个链表的数据;

⑵根据有序判定函数compare,将两个有序表La和Lb归并为一个有序表。

⑶输出归并后的有序表。

四、详细设计

(画出程序流程图)

 

五、程序代码

(给出必要注释)

1.

#include <stdio.h>

#include <stdlib.h>

typedef struct LNode

{int date;

 struct LNode *next;

} LNode,*Link;

//----------线性表的单链表存储结构

typedef struct LinkList

…… …… 余下全文

篇八 :数据结构实验报告

    

实验一 线性表的基本操作

1.实验目的……………………………………………………2

2.实验环境……………………………………………………2

3.实验内容,主要代码,调试与运行……………………2

4.总结……………………………………………………14

实验二 栈的基本操作

1.实验目的……………………………………………………15

2.实验环境……………………………………………………15

3.实验内容,主要代码,调试与运行……………………15

4.总结……………………………………………………18

实验三 赫夫曼树

1.实验目的……………………………………………………18

2.实验环境……………………………………………………18

3.实验内容,主要代码,调试与运行……………………19

4.总结……………………………………………………32

实验一 线性表的基本操作

一、    实验目的

1、     熟悉C或VC++语言上机环境。

2、     会定义线性表的顺序存储结构和链式存储结构。

3、     熟悉顺序表和链表的一些基本操作和应用。

4、     加深对线性表的理解,逐步培养解决实际问题的编程能力。

二、    实验环境

运行C或VC++的微机。

三、    实验内容

1. 已知线性表LA的数据元素(n个,n为偶数),现要求将LA拆开成两个新的线性表LB,LC。要求LB中的数据元素为LA中的奇数位序的数据元素(a1, a3, …, an-1),LC中的数据元素为LA中的偶数位序的数据元素(a2, a4, …, an)。

…… …… 余下全文