文档库 最新最全的文档下载
当前位置:文档库 › 实验一顺序表的基本操作

实验一顺序表的基本操作

实验一顺序表的基本操作
实验一顺序表的基本操作

实验一 顺序表操作实现

实验一顺序表操作实现 实验日期:2017 年 3 月 6 日 实验目的及要求 1. 熟练掌握线性表的基本操作在顺序存储上的实现; 2. 以线性表的各种操作(建立、插入、删除、遍历等)的实现为重点; 3. 掌握线性表的顺序存储结构的定义和基本操作的实现; 4. 通过本实验加深对C语言的使用(特别是函数调用的参数传递、指针类型的应用)。实验内容 已知程序文件seqlist.cpp已给出学生身高信息顺序表的类型定义和基本运算函数定义。 (1)顺序表类型定义 typedef struct { int xh; /*学号*/ float sg; /*身高*/ int sex; /*性别,0为男生,1为女生*/ } datatype; typedef struct{ datatype data[MAX]; /*存放顺序表元素的数组*/ int last; /*表示data中实际存放元素个数*/ }Seqlist; (2)基本运算函数原型 void initList(Seqlist *lp);/*置一个空表*/ void createList(Seqlist *lp);/*建一个学生顺序表*/ void sort_xh(Seqlist *lp);/*按学号排序*/ void Error(char *s);/*自定义错误处理函数*/ void pntList(Seqlist *lp);/*输出学生表*/ void save(Seqlist *lp,char strname[]);/*保存学生顺序表到指定文件*/

任务一 创建程序文件seqlist.cpp,其代码如下所示,理解顺序表类型Seqlist和基本运算函数后回答下列问题。 /*seqlist.cpp程序文件代码*/ #include #include #define MAX 50 typedef struct { int xh; /*学号*/ float sg; /*身高*/ int sex; /*性别,0为男生,1为女生*/ } datatype; typedef struct{ datatype data[MAX]; /*存放顺序表元素的数组*/ int last; /*表示data中实际存放元素个数*/ }Seqlist; void initList(Seqlist *lp);/*置一个空表*/ void createList(Seqlist *lp);/*建一个学生顺序表*/ void sort_xh(Seqlist *lp);/*按学号排序*/ void Error(char *s);/*自定义错误处理函数*/ void pntList(Seqlist *lp);/*输出学生表*/ void save(Seqlist *lp,char strname[]);/*保存学生顺序表到指定文件*/ /*置一个空表*/ void initList(Seqlist *lp) { lp->last=0; } /*建一个学生顺序表*/ void createList(Seqlist *lp) { FILE *fp; int xh ,sex; float sg; if((fp=fopen("records.txt","r"))==NULL) { Error("can not open file !"); } while(!feof(fp)) { fscanf(fp,"%d%f%d",&xh,&sg,&sex); lp->data[lp->last].xh=xh; lp->data[lp->last].sg=sg; lp->data[lp->last].sex=sex; lp->last++; } fclose(fp);

实验报告一顺序表的操作

《数据结构》实验报告一 系别:班级: 学号:姓名: 日期:指导教师: 一、上机实验的问题和要求: 顺序表的查找、插入与删除。设计算法,实现线性结构上的顺序表的产生以及元素的查找、插入与删除。具体实现要求: 从键盘输入10个整数,产生顺序表,并输入结点值。 从键盘输入1个整数,在顺序表中查找该结点的位置。若找到,输出结点的位置;若找不到,则显示“找不到”。 从键盘输入2个整数,一个表示欲插入的位置i,另一个表示欲插入的数值x,将x插入在对应位置上,输出顺序表所有结点值,观察输出结果。 从键盘输入1个整数,表示欲删除结点的位置,输出顺序表所有结点值,观察输出结果。二、程序设计的基本思想,原理和算法描述: (包括程序的结构,数据结构,输入/输出设计,符号名说明等) 三、源程序及注释:

#include <> /*顺序表的定义:*/ #define ListSize 100 /*表空间大小可根据实际需要而定,这里假设为100*/ typedef int DataType; /*DataType可以是任何相应的数据类型如int, float或char*/ typedef struct { DataType data[ListSize]; /*向量data用于存放表结点*/ int length; /*当前的表长度*/ }SeqList; /*子函数的声明*/ void CreateList(SeqList * L,int n); /*创建顺序表函数*/ int LocateList(SeqList L,DataType x); /*查找顺序表*/ void InsertList(SeqList * L,DataType x,int i); /*在顺序表中插入结点x*/ void DeleteList(SeqList * L,int i);/*在顺序表中删除第i个结点*/ void PrintList(SeqList L,int n); /*打印顺序表中前n个结点*/ void main() { SeqList L; int n=10,x,i; /*欲建立的顺序表长度*/ =0;

1.C语言顺序表实验报告

实验报告要求 一、实验目的 二、实验内容 三、程序流程图 四、实验结果(要求检测所有情况的正确性,写出测试条件及相应的测试结果) 五、完成思考题 实验一顺序表的基本操作(2学时) 一、实验目的 了解顺序表的逻辑特征,掌握顺序表的描述方法、特点及有关的概念,掌握顺序表上的插入和删除等基本操作算法。 二、实验内容 在顺序表List []中,实现顺序表的基本操作,包括:初始化顺序表,在表中插入元素、删除元素。 基本要求: (1)顺序表的元素个数可随意设定; (2)可连续测试任意多个元素的插入、删除,(插 入、删除位置及要插入元素数值均从键盘输入); (3)任一操作结束后将顺序表中的内容输出; (4)可由用户选择退出程序。 三、实验要点及说明 顺序表又称为线性表的顺序存储结构,它是用一组地址连续的存储单元依次存放线性表的各个元素。 可按如下格式定义顺序表: #define MAXLEN 50 /* 定义顺序表最大元素个数50 */ typedef struct{ datatype List[MAXLEN];/* 定义顺序表List */ int Num; /* 定义顺序表表长*/ }Seqlist; 模块划分:(1)initiq( )函数:初始化顺序表 (2)insertq( )函数:实现插入功能 (3)deleteq( )函数:实现删除功能 (4)print( )函数:实现输出功能 四、参考源程序 #include #define MAXLEN 50 typedef int datatype; typedef struct{ datatype List[MAXLEN]; int Num; }Seqlist; void initiq(Seqlist *la ); int insertq(Seqlist *la,int n);

顺序表实验报告

《数据结构》实验报告一 系别:嵌入式系统工程系班级:嵌入式11003班 学号:11160400314 姓名:xxx 日期:2012年4月9日指导教师XX 一、上机实验的问题和要求: 顺序表的查找、插入与删除。设计算法,实现线性结构上的顺序表的产生以及元素的查找、插入与删除。具体实现要求: 1.从键盘输入10个整数,产生顺序表,并输入结点值。 2.从键盘输入1个整数,在顺序表中查找该结点的位置。若找到,输出结点的位置;若找 不到,则显示“找不到”。 3.从键盘输入2个整数,一个表示欲插入的位置i,另一个表示欲插入的数值x,将x插 入在对应位置上,输出顺序表所有结点值,观察输出结果。 4.从键盘输入1个整数,表示欲删除结点的位置,输出顺序表所有结点值,观察输出结果。 二、程序设计的基本思想,原理和算法描述: (包括程序的结构,数据结构,输入/输出设计,符号名说明等) 创建一个顺序表,实现对顺序表的插入,查找,删除等功能。 三、源程序及注释: #include /*顺序表的定义:*/ #define ListSize 100 /*表空间大小可根据实际需要而定,这里假设为100*/ typedef int DataType; /*DataType可以是任何相应的数据类型如int, float或char*/ typedef struct { DataType data[ListSize]; /*向量data用于存放表结点*/ int length; /*当前的表长度*/ }SeqList; /*子函数的声明*/

void CreateList(SeqList * L,int n); /*创建顺序表函数*/ int LocateList(SeqList L,DataType x); /*查找顺序表*/ void InsertList(SeqList * L,DataType x,int i); /*在顺序表中插入结点x*/ void DeleteList(SeqList * L,int i);/*在顺序表中删除第i个结点*/ void PrintList(SeqList L,int n); /*打印顺序表中前n个结点*/ void main() { SeqList L; int n=10,x,i; /*欲建立的顺序表长度*/ L.length=0; /*调用创建线性表函数*/ printf(“create function:\n”); CreateList(&L,n); /*建立顺序表*/ PrintList(L,n); /*打印顺序表*/ /*调用查找函数*/ printf(“search function:\n”); printf("input the data you want to search:"); scanf("%d",&x); i=LocateList(L,x); /*顺序表查找*/ if (i==0) printf("sorry,don't find %d!\n\n",x); else printf("i have find the %d,it locate in %d!\n\n",x,i); /*调用插入函数*/ printf(“Insert function:\n”); printf("输入要插入的位置:(input the position:)"); scanf("%d",&i); printf("输入要插入的元素:(input the data:)"); scanf("%d",&x); InsertList(&L,x,i); /*顺序表插入 */ PrintList(L,n); /*打印顺序表 */ /*调用删除函数*/ printf(“delete function:\n”); printf("输入要删除的位置:(input the position:)"); scanf("%d",&i); DeleteList(&L,i); /*顺序表删除 */ PrintList(L,n); /*打印顺序表 */

数据结构- 顺序表的基本操作的实现-课程设计-实验报告

顺序表的基本操作的实现 一、实验目的 1、掌握使用VC++上机调试顺序表的基本方法; 2、掌握顺序表的基本操作:建立、插入、删除等运算。 二、实验仪器 安装VC++软件的计算机。 三、实验原理 利用线性表的特性以及顺序存储结构特点对线性表进行相关的基本操作四、实验内容 程序中演示了顺序表的创建、插入和删除。 程序如下: #include #include /*顺序表的定义:*/ #define ListSize 100 typedef struct { int data[ListSize]; /*向量data用于存放表结点*/ i nt length; /*当前的表长度*/ }SeqList; void main() { void CreateList(SeqList *L,int n); v oid PrintList(SeqList *L,int n); i nt LocateList(SeqList *L,int x); v oid InsertList(SeqList *L,int x,int i); v oid DeleteList(SeqList *L,int i); SeqList L;

i nt i,x; i nt n=10; L.length=0; c lrscr(); C reateList(&L,n); /*建立顺序表*/ P rintList(&L,n); /*打印建立后的顺序表*/ p rintf("INPUT THE RESEARCH ELEMENT"); s canf("%d",&x); i=LocateList(&L,x); p rintf("the research position is %d\n",i); /*顺序表查找*/ p rintf("input the position of insert:\n"); s canf("%d",&i); p rintf("input the value of insert\n"); s canf("%d",&x); I nsertList(&L,x,i); /*顺序表插入*/ P rintList(&L,n); /*打印插入后的顺序表*/ p rintf("input the position of delete\n"); s canf("%d",&i); D eleteList(&L,i); /*顺序表删除*/ P rintList(&L,n); /*打印删除后的顺序表*/ g etchar(); } /*顺序表的建立:*/ void CreateList(SeqList *L,int n) {int i; printf("please input n numbers\n"); for(i=1;i<=n;i++) scanf("%d",&L->data[i]); L->length=n;

实验一顺序表与链表

实验一顺序表与链表 一、实验目的 1、掌握线性表中元素的前驱、后续的概念。 2、掌握顺序表与链表的建立、插入元素、删除表中某元素的算法。 3、对线性表相应算法的时间复杂度进行分析。 4、理解顺序表、链表数据结构的特点(优缺点)。 二、实验预习 说明以下概念 1、线性表: 2、顺序表: 3、链表: 三、实验容和要求 1、阅读下面程序,在横线处填写函数的基本功能。并运行程序,写出结果。 #include #include #define ERROR 0 #define OK 1 #define INIT_SIZE 5 /*初始分配的顺序表长度*/ #define INCREM 5 /*溢出时,顺序表长度的增量*/ typedef int ElemType; /*定义表元素的类型*/ typedef struct Sqlist{ ElemType *slist; /*存储空间的基地址*/ int length; /*顺序表的当前长度*/ int listsize; /*当前分配的存储空间*/ }Sqlist; int InitList_sq(Sqlist *L); /* 构造一个空的线性表L*/ int CreateList_sq(Sqlist *L,int n); /* 构造顺序表的长度为n */ int ListInsert_sq(Sqlist *L,int i,ElemType e);/* 在L中第i个位置之前插入新的数据元素e,L的长度加1 */ int PrintList_sq(Sqlist *L); /*输出顺序表的元素*/ int ListDelete_sq(Sqlist *L,int i); /*删除第i个元素*/

顺序表实验报告

嘉应学院计算机学院 实验报告 课程名称数据结构实验名称线性表实验地点锡科405 指导老师巫喜红实验时间第2-3周提交时间第3周 班级1303班姓名魏振辉学号131110108 一、实验目的和要求 编写一个程序algo2-1.cpp,实现顺序表的各种基本运算 二、实验环境、内容和方法 实验内容: 1.初始化线性表L; 2.依次采用尾插法插入a,b,c,d,e元素; 3.输出顺序表L; 4.输出顺序表L的长度; 5.判断顺序表L是否为空; 6.输出顺序表L的第3个元素; 7.输出元素a的位置; 8.在第4个元素位置上插入f元素; 9.输出顺序表L; 10.删除L的第3个元素; 11.输出顺序表L; 12.释放顺序表L。 实验环境:Windows xp Visual C++6.0 三、实验过程描述 (详见本文件夹) 四、结果分析 运行结果如下图所示: 初始化线性表,先定义一个变量num,用while循环配合switch语句的使用来达到在未选择退出即num不等

时一直提示操作的效果,每执行一次操都会先运行fflush(stdin)函数来清除缓存区,避免下次操作受到干扰; 1、往线性表里插入元素,位置和元素用空格隔开; 2、查询线性表是否为空 3、输出顺序表 4、查询线性表长度

5、查询某位置的元素。执行查询操作时先用if语句判断查询元素的函数LocateElem(L,e)返回的值来执行不的操作,当返回的值为0时则所查元素不在线性表中; 6、查询木元素的位置。用if语句判断是否正确输入; 7、删除某元素。 8、释放顺序表 9、退出。用if语句每次执行操作时都判断一次指令是否正确。 五、实验总结

实验一.顺序表验证实验

实验一顺序表操作验证 一、实验目的 ⑴掌握线性表的顺序存储结构; ⑵验证顺序表及其基本操作的实现; ⑶掌握数据结构及算法的程序实现的基本方法。 二、实验内容 ⑴建立含有若干个元素的顺序表; ⑵对已建立的顺序表实现插入、删除、查找等基本操作。 三、设计与编码 (a)本实验用到的理论知识 首先定义顺序表的数据类型——顺序表类SeqList,包括题目要求的插入、删除、查找等基本操作,为便于查看操作结果,设计一个输出函数依次输出顺序表的元素。 (b)算法设计 const int MaxSize=10; template //定义模板类SeqList class SeqList { public: SeqList( ){length=0;} //无参构造函数 SeqList(T a[ ], int n);//有参构造函数 void Insert(int i, T x); //在线性表中第i个位置插入值为x的元素 T Delete(int i); //删除线性表的第i个元素 int Locate(T x ); //按值查找,求线性表中值为x的元素序号 void PrintList( ); //遍历线性表,按序号依次输出各元素 private: T data[MaxSize]; //存放数据元素的数组 int length; //线性表的长度 }; 其次,建立含有n个数据元素的顺序表,即设计构造函数。算法如下:

最后,对建立的顺序表设计插入、删除、查找等基本操作的算法。 ⑴插入算法 ⑵删除算法 ⑶查找算法 (c)编码 #include #include using namespace std;

顺序表的查找、插入与删除实验报告

《数据结构》实验报告一 学院:班级: 学号:姓名: 日期:程序名 一、上机实验的问题和要求: 顺序表的查找、插入与删除。设计算法,实现线性结构上的顺序表的产生以及元素的查找、插入与删除。具体实现要求: 1.从键盘输入10个整数,产生顺序表,并输入结点值。 2.从键盘输入1个整数,在顺序表中查找该结点的位置。若找到,输出结点的位置;若找 不到,则显示“找不到”。 3.从键盘输入2个整数,一个表示欲插入的位置i,另一个表示欲插入的数值x,将x插 入在对应位置上,输出顺序表所有结点值,观察输出结果。 4.从键盘输入1个整数,表示欲删除结点的位置,输出顺序表所有结点值,观察输出结果。 二、源程序及注释: #include #include /*顺序表的定义:*/ #include #define ListSize 100 /*表空间大小可根据实际需要而定,这里假设为100*/ typedef int DataType; /*DataType可以是任何相应的数据类型如int, float或char*/ typedef struct { DataType data[ListSize]; /*向量data用于存放表结点*/ int length; /*当前的表长度*/ }SeqList; void main() { SeqList L; int i,x; int n=10; /*欲建立的顺序表长度*/ L.length=0; void CreateList(SeqList *L,int n); void PrintList(SeqList L,int n); int LocateList(SeqList L,DataType x); void InsertList(SeqList *L,DataType x,int i); void DeleteList(SeqList *L,int i);

实验1 顺序表的操作

实验1 顺序表的操作 一、实验要求 1 建立顺序表 2 顺序表的长度并输出顺序表 3 插入元素的位置和元素 4 删除值为x的元素 5 顺序表倒置 6 将顺序表按升序排序 7 将两个顺序有序表A和B合并为一个有序表C 二、源代码 DS.h #include #include #include #include #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 typedef int Status; SqList.h #ifndef SQLIST_H_INCLUDED #define SQLIST_H_INCLUDED #include "DS.h" typedef int ElemType; typedef struct { ElemType *elem; int length; int listsize; }SqList; void menu(); Status InitList_Sq(SqList &L, int n);/*初始化顺序表*/ Status CreateList_Sq(SqList &L);/*建立顺序表*/

void PrintList_Sq(SqList L);/*输出顺序表*/ Status DeleteList_Sq(SqList &L,int i,ElemType &e);/*删除第i个元素*/ Status DeleteListX_Sq(SqList &L,ElemType x);/*删除值为x的元素*/ Status AdjustList_Sq(SqList &L);/*奇数排在偶数之前*/ Status OrderList_sq(SqList &L, int n);/*插入法生成递增有序表*/ void MergeList_Sq(SqList La, SqList Lb, SqList &Lc );/*两个非递减有序表A和B,并把它们合并成一个非递减有序表C*/ #endif // SQLIST_H_INCLUDED SqList.cpp #include "SqList.h" void menu() { printf("\t\t\t 顺序表基本操作\n\n"); printf("\t\t\t1.建立顺序表\n"); printf("\t\t\t2.遍历顺序表\n"); printf("\t\t\t3.删除第i 个元素\n"); printf("\t\t\t4.删除值为x 的元素\n"); printf("\t\t\t5.奇数排在偶数之前\n"); printf("\t\t\t6.插入法生成递增有序表\n"); printf("\t\t\t7.两个非递减有序表La和Lb合并成非递减有序表Lc\n"); printf("\t\t\t0.退出\n\n"); } /*初始化顺序表*/ Status InitList_Sq(SqList &L, int n) { L.elem=(ElemType*)malloc(n*sizeof(ElemType)); if(!L.elem) exit(OVERFLOW); L.length=0; L.listsize=n; return OK; } /*建立顺序表*/ Status CreateList_Sq(SqList &L) { int n, i; printf("请输入顺序表长度:"); scanf("%d", &n); if(InitList_Sq(L, n)) {

顺序表的应用数据结构实验报告记录

顺序表的应用数据结构实验报告记录

————————————————————————————————作者:————————————————————————————————日期:

大学数据结构实验报告 课程名称数据结构实验第(三)次实验实验名称顺序表的应用 学生姓名于歌专业班级学号 实验成绩指导老师(签名)日期2018年9月30日一、实验目的 1.学会定义线性表的顺序存储类型,实现C程序的基本结构,对线性表的一些基本操作和具体的函数定义。 2.掌握顺序表的基本操作,实现顺序表的插入、删除、查找以及求并集等运算。 3.掌握对多函数程序的输入、编辑、调试和运行过程。 二、实验要求 1.预习C语言中结构体的定义与基本操作方法。 2.对顺序表的每个基本操作用单独的函数实现。 3.编写完整程序完成下面的实验内容并上机运行。 4.整理并上交实验报告。 三、实验内容: 1.定义一个包含学生信息(学号,姓名,成绩)的顺序表,使其具有如下功能: (1)根据指定学生个数,逐个输入学生信息 (2)逐个显示学生表中所有学生的相关信息 (3)根据姓名进行查找,返回此学生的学号和成绩 (4)根据指定的位置可返回相应的学生信息(学号,姓名,成绩) (5)给定一个学生信息,插入到表中指定的位置 (6)删除指定位置的学生记录 (7)统计表中学生个数 四、实验设计 1.定义一个包含学生信息(学号,姓名,成绩)的顺序表,使其具有如下功能: (1)根据指定学生个数,逐个输入学生信息 for(count=0; count

实验一顺序表

注意事项: 在磁盘上创建一个目录,专门用于存储数据结构实验的程序。因为机房机器有还原卡,请同学们将文件夹建立在最后一个盘中,以学号为文件夹名。 实验一顺序表操作 一、实验目的 1、掌握使用VC++上机调试线性表的基本方法; 2、掌握线性表的基本操作:插入、删除、查找以及线性表合并等运算在顺序存储结构和链接存储结 构上的运算。 二、实验要求 1.认真阅读和掌握本实验的程序。 2.上机运行本程序。 3. 将剩余的操作函数补齐,如删除,判空,有序表的合并,求并集等。 三、实验内容 例:程序1:顺序表基本操作的实现 这个程序中演示了顺序表的创建、插入和查找和合并。 程序如下: #include #include "stdio.h" #include #include #define MAXSIZE 100 typedef int DataType ; //先设定数据元素的类型为整形 //定义顺序表的结构类型 typedef struct { DataType data[MAXSIZE]; int length; } SeqList,* PSeqList; //初始化顺序表 PSeqList Init_SeqList( ){ PSeqList p; p=(PSeqList)malloc(sizeof(SeqList)); if (p) p->length=0; return p; } //销毁顺序表 void Destroy_SeqList(PSeqList *p){ if (*p) free(*p); *p=NULL; }

线性表逆置(顺序表)实验报告

实验一:线性表逆置(顺序表)实验报告 (一)问题的描述: 实现顺序表的逆置算法 (二)数据结构的设计: 顺序表是线性表的顺序存储形式,因此设计如下数据类型表示线性表: typedef struct { ElemType *elem; /* 存储空间基址*/ int length; /* 当前长度*/ int listsize; /* 当前分配的存储容量(以sizeof(ElemType)为单位) */ }SqList; (三)函数功能、参数说明及概要设计: 1.函数Status InitList(SqList *L) 功能说明:实现顺序表L的初始化 算法设计:为顺序表分配一块大小为LIST_INIT_SIZE的储存空间 2.函数int ListLength(SqList L) 功能说明:返回顺序表L长度 算法设计:返回顺序表中的length变量 3.函数Status ListInsert(SqList *L,int i,ElemType e) 功能说明:将元素e插入到顺序表L中的第i个节点 算法设计:判断顺序表是否已满,已满则加空间,未满则继续,将元素e插入到第i个元素之前,并将后面的元素依次往后移 4.函数Status ListTraverse(SqList L,void(*vi)(ElemType*)) 功能说明:依次对L的每个数据元素调用函数vi() 算法设计:依次对L的每个数据元素调用函数vi() 5.函数void Exchange(SqList *L) 功能说明:实现顺序表L的逆置 算法设计:用for循环将顺序表L中的第i个元素依次与第(i+length)个元素交换6.函数void print(ElemType *c) 功能说明:打印元素c 算法设计:打印元素c 2. (四)具体程序的实现

实验一

源程序 【程序代码】 #include"stdio.h" #define MAXSIZE 100 typedef int datatype; typedef struct {datatype data[MAXSIZE]; int last; }seqlist; /*顺序表类型定义*/ /**********函数声明**********/ void create_seqlist(seqlist *l,int n); void print_seqlist(seqlist l); void insert_seqlist(seqlist *l,int i,datatype x); void delete_seqlist(seqlist *l,int i); int locate_seqlist(seqlist l,datatype x); /**********主函数**********/ void main() {seqlist l;int i; create_seqlist(&l,10); print_seqlist(l); /*第1步*/ insert_seqlist(&l,3,666); print_seqlist(l); /*第2步*/ delete_seqlist(&l,8); print_seqlist(l); /*第3步*/ i=locate_seqlist(l,65); if(i==-1)printf("have not this element\n"); else printf("the location is:%d\n",i+1); /*第4步*/ } /**********子函数**********/ void create_seqlist(seqlist *l,int n)/*输入n个整数,建立一个顺序表L*/ {int i; for(i=0;idata[i]); l->last=n-1; } void print_seqlist(seqlist l)/*输出顺序表L中各元素的值*/ {int i; for(i=0;i<=https://www.wendangku.net/doc/c114843954.html,st;i++) printf("%5d",l.data[i]); printf("\n"); } void insert_seqlist(seqlist *l,int i,datatype x)/*在顺序表L的第i个位置插入元素x*/ {int j; if(l->last==MAXSIZE-1)

顺序表的建立及其基本操作技巧

山东师范大学 实验报告 课程:数据结构班级:2016级通信2班实验序号: 1 姓名:韩明达 学号: 201611030230 实验日期:9.17 题目: 顺序表的建立和运算 一、实验目的和要求 (1)熟悉C语言的上机环境,进一步掌握C语言的结构特点。 (2)掌握线性表的顺序存储结构的定义及基本运算 二、实验环境 Windows10,Visual Studio 2017 三、实验内容及实施 实验内容 1、建立一个顺序表,输入n个元素并输出; 2、查找线性表中的最大元素并输出; 3、在线性表的第i个元素前插入一个正整数x; 4、删除线性表中的第j个元素; 5、将线性表中的元素按升序排列; 【程序流程图】

【程序】 #include #include using namespace std; #define MAXSIZE 100 #define OK 1 #define ERROR 0 #define OVERFLOW -2 typedef struct { //定义顺序表结构 int data[MAXSIZE]; //存储空间的基地址; int length; //当前表长 }SqList; int InitList(SqList &L) //初始化顺序表 { L.length = 0; //当前长度为0 return OK; } void ShowList(SqList &L) //显示顺序表 { cout << "您构建的顺序表为:" << endl; //提示int i; for (i = 0; i < L.length; i++) { cout << L.data[i] << " ";

数据结构实验报告-顺序表的创建、遍历及有序合并操作

数据结构实验报告-顺序表的创建、遍历及有序合并操作二、实验内容与步骤 实现顺序表的创建、遍历及有序合并操作,基本数据结构定义如下: typedef int ElemType; #define MAXSIZE 100 #define FALSE 0 #define TRUE 1 typedef struct {ElemType data[MAXSIZE]; int length; }seqlist; 创建顺序表,遍历顺序表 #include #include #define MAXSIZE 100 #define Icreament 20 #define FALSE 0

#define TRUE 1 typedef int ElemType; //用户自定义数据元素类型 // 顺序表结构体的定义 typedef struct { ElemType *elem; //顺序表的基地址 int length; //顺序表的当前长度 int listsize; //预设空间容量 }SqList; //线性表的顺序存储结构 SqList* InitList() //创建空的顺序表 { SqList* L = (SqList*)malloc(sizeof(SqList));//定义顺序表L if(!L) { printf("空间划分失败,程序退出\n"); return NULL; } L->elem=(ElemType *)malloc(MAXSIZE*sizeof(ElemType)); if(!L->elem) { printf("空间划分失败,程序退出\n");

实验二 SQL Server 数据表的基本操作与查询

实验二SQL Server数据表的基本操作 一、实验目的 1.掌握创建数据库和表的操作。 2.熟悉SQL Server查询分析器环境。 3.掌握基本的SELECT查询及其相关子句的使用。 4.掌握复杂的SELECT查询,如多表查询、子查询、连接和联合查询。 二、实验内容 1.创建XSCJ数据库。 2.在XSCJ数据库中创建学生情况表XSQK,课程表KC,学生成绩表XS_KC。 3.在XSQK、KC、XS_KC表中输入数据。 4.启动SQL Server 2000 查询分析器环境。 5.涉及多表的简单查询。 6.涉及多表的复杂查询。 三、实验步骤 1.创建SQL SERVER数据库与数据表 1) 创建XSCJ数据库。 2) 打开创建的 XSCJ数据库,并在“SQL Server Enterprise Mananger” 窗口的右边窗口中选择“表”对象。 3) 选择“操作”菜单中的“新建表”命令,打开SQL Server的表编辑器 窗口。 4) 根据表2-1所示的表结构增加新列。 5) 点击快捷工具栏上的保存快捷按钮,在弹出的“选择名称”对话框中 输入表名XSQK,然后单击“确定”按钮,关闭表编辑器窗口,完成新 表的创建。 6) 打开“表”对象,在“SQL Server Enterprise Manager”窗口的右边 窗口中选择刚才创建的“XSQK”表。 7) 选择“操作”菜单中的“打开表”子菜单下的“返回所有行”命令, 打开表的数据记录窗口。

8) 输入的学生情况数据记录见表2-2。 表2-2 学生情况记录 9) 用同样方法创建课程表KC,表的结构见表2-3所示,表的内容见表2-4 所示。 表2-4 课程表记录 10)创建成绩表XS_KC,表的结构见表2-5所示,表的内容见表2-6所 示。

顺序表定义和使用实验报告

题目:顺序表的定义与使用 一.实验要求:(1)用C/C++定义顺序表的存储结构(2)至少实现四个基本操作(初始化,创建,插入,删除等)(3)使用定义的顺序表实现表内的顺序逆置 二.抽象数据类型 Status Chushih_L(SeqList &l); void Create_L(SeqList &l); Status Insert_L(SeqList &l); Status Delete_L(SeqList &l); Status chazhao_L(SeqList &l); Status nizhi_L(SeqList &l); void Merge_L(SeqList La,SeqList Lb,SeqList Lc); void Print_L(SeqList &l); 三.存储结构 typedef int Status; typedef int ElemType; typedef struct { ElemType *elem; int length; int size; }SeqList; 四.基本操作: Status Chushih_L(SeqList &l){ //l.elem=(ElemType*)malloc(sizeof(ElemType)); l.elem=new ElemType[Size]; if(!l.elem) exit(OVERFLOW); l.length=0; return OK; } void Create_L(SeqList &l){ int n; cout<<"输入表的长度:"<>n; l.length=n; cout<<"输入表中的元素:"; for(int i=0;i

实验一顺序表

实验一线性表的应用—顺序表操作 [ 实验日期 ] 2012 年 9 月 21 日 学号:10131504 专业年级:石工1015姓名:于秀玲 一、目的和要求 1.熟悉并掌握线性表的逻辑结构定义、特点。 2.熟悉并掌握顺序表描述方法。 3.熟悉并掌握顺序表的基本操作,包括顺序表的建立与打印,插入与删除数据元素,查找数据元素等。 二、实验内容 (详细说明顺序表操作的各个函数头的说明) 这次实验我编写了顺序表的基本操作程序,里面包括8个子函数,分别是2个顺序表的创建函数、1个输出函数,1个插入函数、2个查找函数、2个删除函数。然后用主函数实现对子函数的调用。 下面对各个函数进行说明: 1、void CreatSListN(SeqList *p )是创建顺序表函数,是已知要输入数据的个数n,在引 导下输入第1、2、3、。。。个数,直到将n个数输完。当顺序表已满或数据溢出 时,程序将给以提醒。适合于数据量小,个数知道的情况,在程序的引导下, 不易出现漏输数据。 2、void CreatSListX(SeqList *p ) 是创建顺序表函数,是数据个数未知时,通过-1作为 结束标志,将数据全部输入的。该函数可以求出输入数据的个数,并判断数据 个数是否合理。适合于数据量大的情况。 3、void PrintList(SeqList *p) 是输出顺序表函数,通过循环实现顺序表的遍历。 4、int InsertSList(SeqList *L ,int i,int x)是插入函数,是在i处插入x,是将i及其后面的 数据从后到前依次后移一位,在将x插入的。 5、int DeleteSListI(SeqList *L,int i)是删除函数,是将某个位置上的数据删除,通过将 该位置以后的数据从前往后依次前移一位实现的。适合于只关注位置,不在乎 数据的情况。 6、void SearchX(SeqList *L,int x)是查找函数,是查找某个数所在的位置。通过循环依 次判断顺序表理的各个元素是否为所查找的,当元素和该数相等时,跳出循环, 输出结果,当遍历了表里的所有数据时还未找到时,程序会提醒顺序表中没有 该数据。如果需要重新输入,通过函数自身的调用可以实现再次查询。 7、int DeleteSListX(SeqList *L,int x)是删除函数,是要删除某个数据,该数据位置未知 时也可以用。是先确定该数所在位置,可以通过循环实现,也可以通过查找函 数void SearchX(SeqList *L,int x) 来确定然后再调用删除函DeleteSListI(SeqList *L,int i)来实现数据的删除。当数据不存在时也可以给予提醒。 8、void SearchI(SeqList *L,int i)是查找函数,查找顺序表某一位置上的数据,位置已确 定直接将数据输出即可。

相关文档
相关文档 最新文档