篇一 :数据结构(C语言版)实验报告

数据结构(C语言版) 实验报告

  姓名:

学号:

指导老师:


实验1

实验题目:单链表的插入和删除

实验目的

了解和掌握线性表的逻辑结构和链式存储结构,掌握单链表的基本算法及相关的时间性能分析。

实验要求:

建立一个数据域定义为字符串的单链表,在链表中不允许有重复的字符串;根据输入的字符串,先找到相应的结点,后删除之。

实验主要步骤:

1、分析、理解给出的示例程序。

2、调试程序,并设计输入数据(如:bat,cat,eat,fat,hat,jat,lat,mat,#),测试程序的如下功能:不允许重复字符串的插入;根据输入的字符串,找到相应的结点并删除。

3、修改程序:

(1)       增加插入结点的功能。

(2)       将建立链表的方法改为头插入法。

程序代码:

#include"stdio.h"

#include"string.h"

#include"stdlib.h"

#include"ctype.h"

typedef struct node          //定义结点

{

       char data[10];             //结点的数据域为字符串

       struct node *next;      //结点的指针域

…… …… 余下全文

篇二 :数据结构实验报告(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));

…… …… 余下全文

篇三 :数据结构C语言版实验报告

苏州科技学院

数据结构(C语言版)

实验报告

专业班级   测绘0911   

学    号   0920115130  

姓    名    朱辉      

实习地点    C1-203      

指导教师     史守正     


实验四   图

一、程序设计的基本思想,原理和算法描述:

图是一种较线性表和树更加复杂的一种数据结构,在图形结构中,结点之间的关系可以是任意的,图中任意两个数据元素之间都可能相关,图主要有无向图,有向图等

(1)建立无向网的邻接矩阵存储并输出,参考程序清单,实现无向图的邻接矩阵表示。

(2)建立图的邻接表存储并在此基础上实现图的深度优先遍历和广度优先遍历

备注:无向图已完成,无向网需要自己建立(参照算法7.2);参照算法7.4, 7.5,7.6完成图的深度遍历,广度遍历;请添加适当的注释。

二、源程序及注释(打包上传):

三、运行输出结果:

四、调试和运行程序过程中产生的问题及采取的措施:

在程序编辑的过程中,有许多地方出现不能顺序运行的,还有代码出现遗漏出错,图的遍历是重点但因为知识的残缺不能完整的编译出来,又或者编译的程序不能正确的得到结果,再通过多人合作共同讨论后得到了满意的解决。

五、对算法的程序的讨论、分析,改进设想,其它经验教训:

经过这次这么复杂的程序实验,我终于发现了调用函数的巨大优越性,以前遇到都是很短的程序,感觉调用有点多余,但复杂的程序时,如果不采用调用的话,会使程序非常的乱,改程序时不知道从哪改,调用函数能够更好使程序简洁话,层次话,更加容易让人看懂这次试验的逻辑性给了我们很大启发通过本次实验让我对图有了更深刻的认识,再通过多次的更改后终于将实验做出来,在实验中也出现了许多问题,有不出结果,有不能运行的,但最终只要努力都会搞定的

…… …… 余下全文

篇四 :数据结构(C语言版)实验报告

数据结构(C语言版) 实验报告

学院计算机科学与技术

专业计算机大类强化

学号 xxx

班级 xxx

姓名 xxx

指导教师 xxx


实验1

实验题目:单链表的插入和删除

实验目的

了解和掌握线性表的逻辑结构和链式存储结构,掌握单链表的基本算法及相关的时间性能分析。

实验要求:

建立一个数据域定义为字符串的单链表,在链表中不允许有重复的字符串;根据输入的字符串,先找到相应的结点,后删除之。

实验主要步骤:

1、分析、理解给出的示例程序。

2、调试程序,并设计输入数据(如:bat,cat,eat,fat,hat,jat,lat,mat,#),测试程序的如下功能:不允许重复字符串的插入;根据输入的字符串,找到相应的结点并删除。

3、修改程序:

(1)       增加插入结点的功能。

(2)       将建立链表的方法改为头插入法。

程序代码:

#include"stdio.h"

#include"string.h"

#include"stdlib.h"

#include"ctype.h"

typedef struct node          //定义结点

{

       char data[10];             //结点的数据域为字符串

       struct node *next;      //结点的指针域

…… …… 余下全文

篇五 :数据结构(C语言版) 实验报告

数据结构(C语言版) 实验报告

专业:计算机科学与技术

学号:_______________________

班级:_______________________

姓名:_______________________

指导教师:___________________

青岛大学信息工程学院

20##10


实验1

实验题目:顺序存储结构线性表的插入和删除

实验目的

了解和掌握线性表的逻辑结构和顺序存储结构,掌握线性表的基本算法及相关的时间性能分析。

实验要求:

建立一个数据域定义为整数类型的线性表,在表中允许有重复的数据;根据输入的数据,先找到相应的存储单元,后删除之。

实验主要步骤:

1、分析、理解给出的示例程序。

2、调试程序,并设计输入一组数据(3,-5,6,8,2,-5,4,7,-9),测试程序的如下功能:根据输入的数据,找到相应的存储单元并删除,显示表中所有的数据。

程序代码:

#include<stdio.h>

#include<malloc.h>

#include<stdlib.h>

#define OK 1

#define ERROR 0

#define OVERFLOW -2

#define LIST_INIT_SIZE 100

typedef int status;

typedef int ElemType;

typedef struct{

       ElemType *elem;

       int length;

       int listsize;

}sqlist;

…… …… 余下全文

篇六 :数据结构c语言版实验报告

1. 【98初程P71】 内的最确切的解答,把相应编号写在答卷的对应栏内。

设有4个数据元素a1、a2、a3和a4,对他们分别进行栈操作或队操作。在进栈或进队操作时,按a1、a2、a3、a4次序每次进入一个元素。假设栈或队的初始状态都是空。

现要进行的栈操作是进栈两次,出栈一次,再进栈两次,出栈一次;这时,第一次出栈得到的元素是 A ,第二次出栈得到的元素是 B 是;类似地,考虑对这四个数据元素进行的队操作是进队两次,出队一次,再进队两次,出队一次;这时,第一次出队得到的元素是 C ,第二次出队得到的元素是 D 。经操作后,最后在栈中或队中的元素还有 E 个。

供选择的答案:

A~D:①a1 ②a2 ③ a3 ④a4

E: ①1 ②2 ③ 3 ④ 0

答:ABCDE=2, 4, 1, 2, 2

D2.数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元

素的位置,假定队列中元素的个数小于n,计算队列中元素的公式为

(A)r-f; (B)(n+f-r)% n; (C)n+r-f;

(D)(n+r-f)% n

3. 【94初程P75】 内的最确切的解答,把相应编号写在答卷的对应栏内。

栈是一种线性表,它的特点是 A 。设用一维数组A[1,…,n]来表示一个栈,A[n]为栈底,用整型变量T指示当前栈顶位置,A[T]为栈顶元素。往栈中推入(PUSH)一个新元素时,变量T的值 B ;从栈中弹出(POP)一个元素时,变量T的值 C 。设栈空时,有输入序列a,b,c,经过PUSH,POP,PUSH,PUSH,POP操作后,从栈中弹出的元素的序列是 D ,变量T的值是 E 。

供选择的答案:

A: ① 先进先出 ②后进先出 ③进优于出 ④出优于进 ⑤ 随机进出 B,C: ① 加1 ②减1 ③不变 ④清0 ⑤ 加2 ⑥减2 D:① a,b ②b,c ③c,a ④b,a ⑤ c,b ⑥ a,c

…… …… 余下全文

篇七 :数据结构C语言版实验三报告

实验三

一、实验目的

1、掌握栈的储存结构的表示和实现方法。

2、掌握栈的入栈和出栈等基本操作算法实现。

3、了解栈在解决实际问题中的简单应用。

二、实验内容

1、建立顺序栈,并在顺序栈上实现入栈和出栈操作(验证性内容)。

2、建立链栈,并在链栈上实现入栈和出栈操作(设计性内容)。

3、实现汉诺塔求解问题(应用性设计内容)。

三、验证性实验

1、实验要求

编程实现如下功能:

(1) 根据输入的栈中元素个数n和各元素值建立一个顺序栈,并输出栈中各元素值。

(2) 将数据元素e入栈,并输出入栈后的顺序栈中各元素值。

(3) 将顺序栈中的占顶元素出栈,并输出出栈元素的值和出栈后顺序栈中各元素值。

四、设计性实验

编程实现链栈的入栈和出栈操作。

1、 实验要求

(1) 根据输入的占中元素个数和各元素值建立一个链栈,并输出链栈中各元素值,观察输入的内容与输出的内容是否一致,特别注意栈顶元素的位置。

(2) 将数据元素x入栈,并输出入栈后的链栈中各元素值。

(3) 将链栈中的栈顶元素出栈,并输出栈元素的值和出栈后链栈中各元素值。

五、应用性设计实验

编程实现汉诺塔求解问题

1、实验要求

假设有三个命名为X、Y和Z的塔座,在塔座X上插有n个直径大小个不相同且从小到大编号为1、2、……,n的圆盘。现要求将塔座X上的n个圆盘借助于塔座Y移至塔座Z上,并仍按同样顺序叠排。圆盘移动时必须遵循下列规则:

(1) 每次只能移动一个圆盘;

(2) 圆盘可以插在X、Y和Z中的任何一个塔座上;

附上编译成功代码:

验证性实验:

#include<stdio.h>

#include<malloc.h>

#define ERROR 0

#define OK 1

#define stack_init_size 100

#define stackincrement 10

…… …… 余下全文

篇八 :数据结构(C语言版) 实验报告

数据结构(C语言版) 实验报告

专业:计算机科学与技术、软件工程

学号:____201240703061___________________ 班级:_________软件二班______________ 姓名:________朱海霞______________ 指导教师:___刘遵仁________________

青岛大学信息工程学院

20xx年10月

实验1

实验题目:顺序存储结构线性表的插入和删除

实验目的:

了解和掌握线性表的逻辑结构和顺序存储结构,掌握线性表的基本算法及相关的时间性能分析。

实验要求:

建立一个数据域定义为整数类型的线性表,在表中允许有重复的数据;根据输入的数据,先找到相应的存储单元,后删除之。

实验主要步骤:

1、分析、理解给出的示例程序。

2、调试程序,并设计输入一组数据(3,-5,6,8,2,-5,4,7,-9),测试程序的如下功能:根据输入的数据,找到相应的存储单元并删除,显示表中所有的数据。

程序代码:

#include<stdio.h>

#include<malloc.h>

#define OK 1

#define ERROR 0

#define OVERFLOW -2

#define LIST_INIT_SIZE 100

#define LISTINCREMENT 10

typedef struct{

int* elem;

int length;

int listsize;

}Sqlist;

int InitList_Sq(Sqlist &L){

L.elem=(int*)malloc(LIST_INIT_SIZE*sizeof(int));

if(!L.elem) return -1;

L.length=0;

L.listsize=LIST_INIT_SIZE;

…… …… 余下全文