数据结构顺序表实验报告
数据结构实验一_顺序表的基本操作实验报告
实验一顺序表的基本操作
一、实验目的
掌握线性表的顺序表基本操作:建立、插入、删除、查找、合并、打印等运算。
二、实验要求包含有头文件和main函数;
1.格式正确,语句采用缩进格式;
2.设计子函数实现题目要求的功能;
3.编译、连接通过,熟练使用命令键;
4.运行结果正确,输入输出有提示,格式美观。
三、实验设备、材料和工具
1.奔腾2计算机或以上机型
2.turboc2,win-tc
四、实验内容和步骤
1. 建立一个含n个数据元素的顺序表并输出该表中各元素的值及顺序表的长度。
2. 往该顺序表中第i位置插入一个值为x的数据元素。
3. 从该顺序表中第j位置删除一个数据元素,由y返回。
4. 从该顺序表中查找一个值为e的数据元素,若找到则返回该数据元素的位置,否则返回“没有找到”。
五、程序
#include<stdio.h>
#include<stdlib.h>
#define list_init_size 10
#define increment 2
typedef struct {
int *elem;
int length,listsize;
}sqlist; //类型定义
void initlist_sq(sqlist &L) //初始化顺序表
{ }
void output(sqlist L) //输出顺序表
{ }
void insertlist(sqlist &L,int i, int x) //顺序表中插入x
{ }
void deletelist(sqlist &L,int j, int y) //顺序表中删除y
顺序表实验报告
顺序表实验报告
摘要:
一、实验背景及目的
二、实验对象与方法
三、实验结果与分析
四、实验总结与建议
正文:
一、实验背景及目的
随着科技的不断发展,顺序表在各种领域的应用越来越广泛。为了进一步了解顺序表的性能和特点,本实验对顺序表进行了相关测试。实验旨在通过对比分析,评估顺序表在不同条件下的表现,为后续研究与应用提供参考依据。
二、实验对象与方法
1.实验对象:某品牌顺序表产品
2.实验方法:
(1)根据实验需求,制定实验方案,明确实验步骤与评价标准;
(2)将顺序表产品置于不同环境下,如高温、低温、湿度等,观察其性能变化;
(3)通过数据记录与分析,评估顺序表在不同环境下的稳定性、可靠性和适用性。
三、实验结果与分析
1.顺序表在不同环境下的性能表现:
(1)在高温环境下,顺序表表现稳定,数据传输速率较快;
(2)在低温环境下,顺序表仍能正常工作,性能略有下降;
(3)在湿度较大的环境下,顺序表出现一定程度的性能波动,但整体表现良好。
2.分析:
(1)顺序表在不同环境下性能表现差异较小,说明产品具有较强的适应性;
(2)在湿度较大环境下,性能略有波动,可能与产品内部结构有关,需进一步优化;
(3)实验结果符合预期,顺序表产品具备较好的稳定性和可靠性。
《数据结构》-实验报告1
《数据结构》-实验报
告1
-CAL-FENGHAI.-(YICAI)-Company One1
xxx 实验报告
一、实验目的
1.熟悉上机环境,进一步掌握语言的结构特点。
2.掌握线性表的顺序存储结构的定义及实现。
3.掌握线性表的链式存储结构——单链表的定义及实现。
4.掌握线性表在顺序存储结构即顺序表中的各种基本操作。
5.掌握线性表在链式存储结构——单链表中的各种基本操作。
二、实验内容
1.顺序线性表的建立、插入及删除。
2.链式线性表的建立、插入及删除。
三、实验步骤
1.建立含n个数据元素的顺序表并输出该表中各元素的值及顺序表的长度。
2.利用前面的实验先建立一个顺序表L={21,23,14,5,56,17,31},然后在第i个位置插入元素68。
3.建立一个带头结点的单链表,结点的值域为整型数据。要求将用户输入的数据按尾插入法来建立相应单链表。
四、程序主要语句及作用
1)程序1的主要代码(附简要注释)
#include<iostream>
using namespace std;
#define MAXSIZE 1024
//#define OVERFLOW 0
//#define NULL 0
#define OK 1
#define MAXSIZE 1024
typedef int elemtype; /* 线性表中存放整型元素 */
typedef struct //结构定义头文件sqlist.h
{ elemtype vec[MAXSIZE];
int len; /* 顺序表的长度 */
}sqlist;
数据结构实验一(顺序表基本操作)题目和源程序
实验1:顺序表基本操作
一、实验目的
1.学会定义线性表的顺序存储类型,实现C程序的基本结构,对线性表
的一些基本操作和具体的函数定义。
2.掌握顺序表的基本操作,实现顺序表的插入、删除、查找以及求并集
等运算。
3.掌握对多函数程序的输入、编辑、调试和运行过程。
二、实验要求
1.预习C语言中结构体的定义与基本操作方法。
2.对顺序表的每个基本操作用单独的函数实现。
3.编写完整程序完成下面的实验内容并上机运行。
4.整理并上交实验报告。
三、实验内容:
1.编写程序实现顺序表的下列基本操作:
(1)初始化顺序表La。
(2)将La置为空表。
(3)销毁La。
(4)在La中插入一个新的元素。
(5)删除La中的某一元素。
(6)在La中查找某元素,若找到,则返回它在La中第一次出现的位置,
否则返回0。
(7)打印输出La中的元素值。
2.编写程序完成下面的操作:
(1)构造两个顺序线性表La和Lb,其元素都按值非递减顺序排列。
(2)实现归并La和Lb得到新的顺序表Lc,Lc的元素也按值非递减顺序排列。
(3)假设两个顺序线性表La和Lb分别表示两个集合A和B,利用
union_Sq操作实现A=A∪B。
四、思考与提高
假设两个顺序线性表La和Lb分别表示两个集合A和B,如何实现A=A ∩B ?
数据结构查找排序实验报告
贵州大学实验报告
学院:电子信息学院专业:通信工程班级:2012级1班姓名学号实验组实验时间2014.5.15 指导教师成绩
实验项目名称查找排序
实
验目的和要求
1、掌握常用的查找、排序方法,及相应的算法实现。
2、能实现并应用某一种查找算法。理解各种排序方法的特点,并能加以灵活应用。
3、了解各种排序算法的时间复杂度分析。
实
验原理1、根据实验内容编程,上机调试、得出正确的运行程序。
2、编译运行程序,观察运行情况和输出结果。
实
验
仪
器
运行Visual c++的微机一台
实验内容和步骤1、查找相关实验内容及步骤。
①建立顺序存储结构,构建一个顺序表,实现顺序查找算法。
typedef struct {
ElemType *elem; //数据元素存储空间基址,建表时按实际长度分配,号单元留空
int length; //表的长度
} SSTable;
②对顺序表先排序后,实现行二分法查找相关操作。
③定义二叉树节点,根据节点的值进行查找,并且实现节点的插入,删除等操作。
typedef struct BiTnode { //定义二叉树节点
int data; //节点的值
struct BiTnode *lchild,*rchild;
}BiTnode,*BiTree;
④定义哈希表以及要查找的节点元素,创建哈希表,实现其相关查找操作。
typedef struct {
int num;
} Elemtype; //定义查找的结点元素
typedef struct {
Elemtype *elem; //数据元素存储基址
int count; //数据元素个数
数据结构实验报告4
数据结构实验报告——实验4
学号::得分:______________
一、实验目的
1、复习线性表的逻辑结构、存储结构及基本操作;
2、掌握顺序表和(带头结点)单链表;
3、了解有序表。
二、实验容
1、(必做题)假设有序表中数据元素类型是整型,请采用顺序表或(带头结点)单链表实现:
(1)OrderInsert(&L, e, int (*compare)(a, b))
//根据有序判定函数compare,在有序表L的适当位置插入元素e;
(2)OrderInput(&L, int (*compare)(a, b))
//根据有序判定函数compare,并利用有序插入函数OrderInsert,构造有序表L;
(3) OrderMerge(&La, &Lb, &Lc, int (*compare)())
//根据有序判定函数compare,将两个有序表La和Lb归并为一个有序表Lc。
2、(必做题)请实现:
(1)升幂多项式的构造,升幂多项式是指多项式的各项按指数升序有序,约定系数不能等于0,指数不能小于0;
(2)两个升幂多项式的相加。
三、算法描述
(采用自然语言描述)
1.
创建带头节点的链表,
输入两个有序表数据La Lb
归并两个有序表得有序表Lc
输出三个有序表
输入需插入数据e
将e插入有序表Lc
输出插入e后的Lc
2.
创建链表
按指数升序输入多项式得序数和指数
输出多项式
按指数升序输入第二个多项式得序数和指数
两个多项式相加
输出第二个多项式和两个多项式得和
四、详细设计
(画出程序流程图)1.
2.
五、程序代码
(给出必要注释)
数据结构实验报告(实验一)
深圳大学实验报告
课程名称:数据结构实验与课程设计
实验项目名称:实验一:顺序表的应用
学院:计算机与软件学院
专业:
指导教师:蔡平
报告人:文成学号: 2011150259 班级:
5
实验时间: 2012-9-17 实验报告提交时间: 2012-9-24
教务部制
return 0;
}
四、实验结果及数据处理分析:A:
实验基本达到实验要求
B:
实验基本达到实验要求
C:
实验基本达到实验要求
D:
实验基本达到实验要求
五、实验结论与体会:
从这个实验中我学会了线性表一些基本操作,例如插入、查找和删除。也复习了一边C++语言程序的规。原先试了很多次都是出现错误,最后才发现太久没编程,犯了很多低级错误,从中体会到编程是需要时间和耐心的。
要求挺简单的,就是如此简单的插入、查找、删除、循环移位等。程序写完了,但是还发现程序中还有许多不完善的地方、不严谨的地方,如异常
2、教师批改学生实验报告时间应在学生提交实验报告时间后10日。
数据结构_实验2_顺序表的基本操作
实验报告
实验课程数据结构
实验项目实验二、顺序表的基本操作实验地点
指导教师
班级
学生姓名
学号
教师评分
日期
一、实验目的
1、掌握线性表的顺序存储结构;
2、掌握顺序表及其基本操作的实现;
3、掌握数据结构及算法的程序实现的基本方法。
二、实验设备
1.安装有WinXP的PC一台;
2.安装有软件VC6或者Visual Studio2005。
三、实验内容
1、建立含有若干个元素的顺序表;
2、对已建立的顺序表实现插入、删除、查找等基本操作;
3、对两个顺序表进行合并操作。
四、实验步骤
1.根据下面的表格,定义一个表示数据元素的结构体。
2.根据教材的内容,定义顺序表的结构体。
3.根据教材的内容,编写代码,实现顺序表的下列函数。
4.定义数据元素输入函数如下。请完善代码。
5.定义顺序表的创建函数如下,请完善代码。
6.定义数据元素的输出函数如下,请完善代码。
7.定义main函数,要求完成如下功能。
A.定义三个顺序表分别为list1, list2,list3;
B.初始化两个顺序表list1和list2;
C.输入顺序表list1;
D.输入list2;
E.合并list1和list2到list3中;
F.删除list3中的第三个元素;
G.输出list3中的内容。
五、实验总结
请写出本实验的心得体会。
《数据结构》实验1实验报告
南京工程学院实验报告
<班级>_<学号>_<实验X>.RAR文件形式交付指导老师。
一、实验目的
1.熟悉上机环境,进一步掌握语言的结构特点。
2.掌握线性表的顺序存储结构的定义及实现。
3.掌握线性表的链式存储结构——单链表的定义及实现。
4.掌握线性表在顺序存储结构即顺序表中的各种基本操作。
5.掌握线性表在链式存储结构——单链表中的各种基本操作。
二、实验内容
1.顺序线性表的建立、插入及删除。
2.链式线性表的建立、插入及删除。
三、实验步骤
1.建立含n个数据元素的顺序表并输出该表中各元素的值及顺序表的长度。
2.利用前面的实验先建立一个顺序表L={21,23,14,5,56,17,31},然后在第i个位置插入元素68。
3.建立一个带头结点的单链表,结点的值域为整型数据。要求将用户输入的数据按尾插入法来建立相应单链表。
四、程序主要语句及作用
程序1的主要代码(附简要注释)
public struct sequenlist
{
public const int MAXSIZE=1024; /*最大值为1024*/
public elemtype[] vec;
public int len; /* 顺序表的长度 */
public sequenlist( int n)
{
vec=new elemtype[MAXSIZE ];
len = n;
}
};
class Program
{
static void Main(string[] args)
{
sequenlist list1 = new sequenlist(5);
数据结构实验:顺序表设计与应用-精简
实验报告
实验名称:实验一:顺序表设计与应用(实验报告)
一.实验目的:
1.熟悉顺序表的概念,加深对顺序表的理解;
2.掌握对顺序表的设计与运用,包括顺序表的初始化,遍历,删除,查找,插入等基本操作。二.实验内容:
1.在顺序表制定位置增加数据元素;
2.删除顺序表指定位置的数据元素;
3.修改顺序表指定位置的数据元素值;(选作)
4.查找顺序表中是否存在某一数据元素;(选作)
三.实验方法:
1.将顺序表的基本操作如初始化,插入,删除,查找,删除重复元素等基本操作以函数调用的方
式来做成函数,然后封装在formate1.h文件中;
2.在主函数中调用formate1.h文件,就可以实现对顺序表的基本操作。
四.实验源程序:
1.formate1.h
/*顺序表基本操作*/
/*初始化顺序表*/
int InitList(SqList *L)
{
L->length=0;
return 1;
}
/*求顺序表长*/
int ListLength(SqList L)
{
return L.length;
}
/*判断顺序表是否为空*/
int ListEmpty(SqList L)
{
if(L.length<=0)
return 1;
else
return 0;
}
/*插入指定位置上数据元素*/
int ListInsert(SqList *L,int pos,DataType item)
{
int i;
if(L->length>=LISTSIZE)
{
printf("顺序表已满,无法进行插入操作!");
return 0;
}
if(pos<=0 || pos>L->length+1)
数据结构实验报告-3-线性表的顺序存储-1
if (k>0) return k;
else {
cout<<"无前驱结点!"<<endl; return 0; } } //(12)求直接后继结点算法 /* *输 入:要查找的元素 e,待存放后继结点值 e1 *前置条件:无 *功 能:查找该元素的所在位置,获得其后继所在位置。 *输 出:返回其后继结点的位序。 *后置条件:e1 值为后继结点的值 */ //实现代码: template<class datatype> int SeqList<datatype>::Suc(datatype item) { int k=Locate(item)+1; if (k>length) { cout<<"无后继结点!"<<endl; return 0; } else { return k; } }
cout<<"表为空,无法删除元素!"<<endl; } if (i<1 || i>length)
{ cout<<"i 不合法!"<<endl;
} item=data[i-1];//获得要删除的元素值 for (j=i; j<length; j++)
data[j-1]=data[j]; //注意数组下标从 0 记 length--; return item; } //(6)遍历线性表元素算法 /* *输 入:无 *前置条件:顺序表存在 *功 能:顺序表遍历 *输 出:输出所有元素 *后置条件:无 */ //实现代码: template<class datatype> void SeqList<datatype>::display() { if(length==0) {
《数据结构》实验报告查找
实验四——查找
一、实验目的
1.掌握顺序表的查找方法,尤其是折半查找方法;
2.掌握二叉排序树的查找算法。
二、实验内容
1.建立一个顺序表,用顺序查找的方法对其实施查找;
2.建立一个有序表,用折半查找的方法对其实施查找;
3.建立一个二叉排序树,根据给定值对其实施查找;
4.对同一组数据,试用三种方法查找某一相同数据,并尝试进行性能分析。
三、实验预习内容
实验一包括的函数有:typedef struct ,创建函数void create(seqlist & L),输出函数void print(seqlist L),顺序查找int find(seqlist L,int number),折半查找int halffind(seqlist L,int number)
主函数main().
实验二包括的函数有:结构体typedef struct,插入函数void insert(bnode * & T,bnode * S),void insert1(bnode * & T),创建函数void create(bnode * & T),查找函数bnode * search(bnode * T,int number),主函数main().
四、上机实验
实验一:
1.实验源程序。
#include<>
#define N 80
typedef struct
{
int number; umber;
for(i=1;[i].number!=0;)
{
cin>>[i].name>>[i].sex>>[i].age;
数据结构实验报告-2-1-线性表(顺序表实现)
实验2.1 线性表(顺序表实现)的基本操作及其应用
一、实验目的
1、帮助读者复习C语言程序设计中的知识。
2、熟悉线性表的逻辑结构。
3、熟悉线性表的基本运算在顺序表结构上的实现。
4、掌握顺序表的存储结构形式及其描述和基本运算的实现。
二、实验内容
[问题描述]
实现顺序表的建立、求长度,取元素、修改元素、插入、删除等顺序表的基本操作。[基本要求]
(1)实现顺序表初始化操作;
(2)实现插入元素的操作;
(3)实现删除元素的操作;
(4)实现更改元素的操作;
(5)实现获取顺序表长度的操作;
(6)实现获取元素的操作。
[代码模板]
1.顺序表数据类型:
#define ListSize 10
typedef int DataType;
typedef struct{
DataType data[ListSize];
int length;
}SeqList;
三、源代码
void initList(SeqList * L)
{
L=(SeqList*)malloc(sizeof(SeqList));
L->length=0;
}
void insertList(SeqList * L, DataType x, int i)
{
int j;
for (j=L->length-1; j>=i-1; --j)
L->data[j+1]=L->data[j];
L->data[i-1]=x;
++L->length;
}
void deleteList(SeqList * L, int i)
{
int j;
for (j=i; j<L->length; ++j)
数据结构实验一实验报告
班级:姓名:学号:
实验一线性表的基本操作
一、实验目的
1、掌握线性表的定义;
2、掌握线性表的基本操作,如建立、查找、插入和删除等。
二、实验内容
定义一个包含学生信息(学号,姓名,成绩)的顺序表和链表(二选一),使其具有如下功能:
(1) 根据指定学生个数,逐个输入学生信息;
(2) 逐个显示学生表中所有学生的相关信息;
(3) 根据姓名进行查找,返回此学生的学号和成绩;
(4) 根据指定的位置可返回相应的学生信息(学号,姓名,成绩);
(5) 给定一个学生信息,插入到表中指定的位置;
(6) 删除指定位置的学生记录;
(7) 统计表中学生个数。
三、实验环境
Visual C++
四、程序分析与实验结果
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#include<string.h>
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int Status; // 定义函数返回值类型
typedef struct
{
char num[10]; // 学号
char name[20]; // 姓名
double grade; // 成绩
}student;
typedef student ElemType;
typedef struct LNode
{
ElemType data; // 数据域
struct LNode *next; //指针域
}LNode,*LinkList;
数据结构实验报告(C语言)顺序表__排序
#include "stdafx.h" #include "stdio.h" #include "malloc.h" #define MAXSIZE 20 typedef struct{
int rБайду номын сангаасMAXSIZE+1]; int length;
}SqeList;
int InitList(); int CreateList(SqeList *L,int n); int PrintList(SqeList *L);
} } }
void ShellSort(SqeList *L,int n){ int i,di; //di 代表增量序列,并通过 for 循环依次计算出 di=n/2 的值 for(di=n/2;di>0;di/=2){ for(i=0;i<di;i++) ShellInsert(L,di); }
}
printf("%3d",L->r[i]); return 1; }
//直接插入排序 void InsertSort(SqeList *L){
int i,j; for(i=2;i<=L->length;i++){
L->r[0]=L->r[i]; j=i-1; while(L->r[0] < L->r[j]){
顺序表实验报告
顺序表实验报告
计算机学院实验报告
课程名称:数据结构实验名称:顺序表
学生姓名:朱孝彬学生学号:***-*****001 实验日期:2012
一、实验目的
一、掌握顺序表的建立
二、掌握从顺序表中查找元素三、掌握向顺序表中插入元素四、掌握从顺序表中删除元素五、
学会遍历顺序表
六、
掌握对线顺序进行有序输出
实验要求
设置一个算法解决线性表的操作
源代码:
菜单输出函数文件cmain.h文件:
#includeiostream using namespace std; void cmain() / {
cout“***********************************“endl; cout" 主菜单"endl;
cout" 1.输入数据元素2.输出数据元素"endl; cout" 3.按元素查找4.按位置查找"endl; cout" 5.插入元素6.删除元素"endl; cout" 7.现有数据个数8.数组总长度"endl; cout" 9.清空列表0.退出程序"endl;
cout"注意:1.选择时不能输入过多字符(20个)"endl; cout" 2.选择时只读取第一个字符"endl;
cout"***********************************"endl; cout"请输入选项(1~9):"; }
1、主程序的实现cmain.cpp文件:
#include"list.h" #include"cmain.h" #includeiostream using
namespace std; void main() {
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
洛阳理工学院实验报告
实验总结:
经过调试与测试,实验结果与测试预期一致。顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。线性表采用顺序存储的方式存储就称之为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。