数据结构第一次实验报告

合集下载

《数据结构》-实验报告1

《数据结构》-实验报告1

《数据结构》-实验报告1-CAL-FENGHAI.-(YICAI)-Company One1xxx 实验报告一、实验目的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 1024typedef int elemtype; /* 线性表中存放整型元素 */typedef struct //结构定义头文件sqlist.h{ elemtype vec[MAXSIZE];int len; /* 顺序表的长度 */}sqlist;int initlist(sqlist *L,int k){ int i;printf("Input the list:");for( i=0;i<k;i++)scanf("%d", &L->vec[i]);//cin>>L->vec[i];同效,注意输入时地址"&"return OK;}// 以下是整个源程序:#include"sqlist.h"int main(){ int i,n;sqlist *L,a; //定义表的变量printf("\n Input the length of the list L:\n");scanf("%d",&n);L=&a; //指针引用,如果去掉L=&a语句,会出现什么结果?L->len=n; //将长度传给leninitlist(L,n);printf("Output the list and its length:\n");for(i=0;i<n;i++)printf("%d ", L->vec[i]);printf("\nThis sqlist's length is %d", L->len);system("pause");return 0;}2)程序2的主要代码(附简要注释)/*顺序表的插入利用前面的实验先建立一个顺序表L={21,23,14,5,56,17,31}然后在第i个位置插入元素68。

数据结构实验报告一

数据结构实验报告一

数据结构实验报告一数据结构实验报告一引言数据结构是计算机科学的重要基础,它研究如何组织和存储数据,以便高效地访问和操作。

在本次实验中,我们将学习并实践一些常见的数据结构,包括数组、链表和栈。

通过实验,我们将深入理解这些数据结构的特点和应用场景。

实验一:数组数组是一种线性数据结构,它由一系列相同类型的元素组成,并按照一定的顺序存储。

在本次实验中,我们将学习如何创建和操作数组。

首先,我们需要了解如何声明和初始化一个数组。

在C语言中,可以使用以下语法来声明一个整型数组:int array[5];接下来,我们可以使用下标操作符[]来访问数组中的元素。

例如,要访问数组中的第一个元素,可以使用以下语法:int firstElement = array[0];除了访问元素,我们还可以修改数组中的值。

例如,要将第三个元素的值改为10,可以使用以下语法:array[2] = 10;数组的优点是可以快速访问任意位置的元素,但缺点是大小固定,不易动态调整。

实验二:链表链表是一种动态数据结构,它由一系列节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。

在本次实验中,我们将学习如何创建和操作链表。

首先,我们需要了解如何声明和初始化一个链表。

在C语言中,可以使用以下结构体来定义一个链表节点:struct Node {int data;struct Node* next;};接下来,我们可以使用malloc函数来动态分配一个节点的内存空间,并将其指针赋给链表的头指针。

例如,要创建一个包含三个节点的链表,可以使用以下语法:struct Node* head = (struct Node*)malloc(sizeof(struct Node));struct Node* second = (struct Node*)malloc(sizeof(struct Node));struct Node* third = (struct Node*)malloc(sizeof(struct Node));然后,我们可以使用箭头操作符->来访问节点中的数据元素和指针。

数据结构实验报告一

数据结构实验报告一

数据结构实验报告一数据结构实验报告一一、引言数据结构是计算机科学中非常重要的一门课程,它研究的是数据的组织、存储和管理方式。

在本次实验中,我们将学习并实践一些常用的数据结构,包括数组、链表和栈。

通过实验,我们将深入理解这些数据结构的原理和应用。

二、实验目的本次实验的目的是通过编写代码实现一些常用的数据结构,并测试它们的功能和性能。

通过实际操作,我们将掌握这些数据结构的基本操作和使用方法。

三、实验过程1. 数组数组是一种线性数据结构,它由一组连续的存储单元组成。

在本次实验中,我们将实现一个动态数组,它可以根据需要自动调整大小。

我们首先定义一个数组类,包含插入、删除和查找等基本操作。

然后,我们编写测试代码,验证数组的功能和性能。

2. 链表链表是另一种常用的数据结构,它由一系列节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。

在本次实验中,我们将实现一个单向链表。

我们首先定义一个节点类,然后定义一个链表类,包含插入、删除和查找等基本操作。

最后,我们编写测试代码,验证链表的功能和性能。

3. 栈栈是一种特殊的线性数据结构,它只能在一端进行插入和删除操作。

栈的特点是后进先出(LIFO)。

在本次实验中,我们将实现一个栈。

我们首先定义一个栈类,包含入栈、出栈和查看栈顶元素等基本操作。

然后,我们编写测试代码,验证栈的功能和性能。

四、实验结果通过实验,我们成功实现了动态数组、单向链表和栈的基本操作。

我们编写了测试代码,并对这些数据结构的功能和性能进行了验证。

实验结果表明,这些数据结构在不同场景下都有很好的表现,并且可以满足我们的需求。

五、实验总结本次实验让我们更加深入地理解了数据结构的原理和应用。

通过实际编写代码并进行测试,我们掌握了数组、链表和栈等常用数据结构的基本操作和使用方法。

实验过程中,我们遇到了一些问题,但通过不断的调试和优化,最终成功解决了这些问题。

通过本次实验,我们不仅提高了编程能力,也增强了对数据结构的理解和应用能力。

数据结构实验报告1-线性结构的顺序存储

数据结构实验报告1-线性结构的顺序存储
评定等级为:优秀、良好、中等、及格、不及格
教师签名: 2008 年 月 日
第2页共2页
2、参照课本,定义一个向量类模板,编写它的成员函数模板,对类模板加以实现;编写向量的并、 交运算功能函数;编写主程序,对两个向量进行分别进行合并、交运算。
3、通过阅读课本栈类板代码,理解栈类操作特点;编写一个借助于栈,将二进制数转换为十进制数 字串的程序;编写汉诺塔问题程序,理解函数的递归调用。
4、参照课本,定义一个顺序队列类模板,编写它的成员函数模板 ,对类模板加以实现;编写主程序, 对队列进行各种基本操作,理解队列的操作特性。
五、 实验总结(包括心得体会、问题回答及实验改进意见,可附页)
通过本次实验,基本上能够理解线性结构的顺序存储方式及各种不同线性结构的操作方式;顺序存 储方式主要用于线性的数据结构,它把逻辑上相邻的数据元素存储在物理上相邻的存储单元里结点之间 的关系由存储单元的邻接关系来体现。线性表、向量、栈、队列都属于线性结构的顺序存储,各结点的 物理地址是相邻的,每一次插入、删除运算会引起相应结点物理地址的重新排列;栈的操作特点是先进 后出,而队列的操作特点是先进先出。
2、 对两个向量进行合并、交运算,结果如下: 输入向量 La 的结点元素:1 2 3 4 5,输入 Lb 的结点元素:1 2 3 4 5 6,则两向量的交集为:1 2 3 4 5;并集为:1 2 3 4 5 6。
3、(1)将二进制数转换为十进制数字串的程序,结果如下: 输入要转换的带符号整数 x:+3;则 x 转换成十进制数字串输出为:+3
Байду номын сангаас
第1页共2页
四、 实验结果(包括程序或图表、结论陈述、数据记录及分析等,可附页)
1、 对线性表进行插入、删除、定位等操作,结果如下: 输入线性表元素:1 2 3 4 5,(1)选择插入,输入插入位置 2,插入值 9,则新的线性表为:1 2 9 3 4 5;(2)选择删除,输入删除元素序号 5,则新的线性表为:1 2 9 3 4;(3)选择取值,输入要求 值元素序号 2,则屏幕输出:第2个元素的值为 9;(4)选择查找,输入要查找的元素值 9,则屏幕输 出:要查找元素的序号为 2。

数据结构实验1环境使用实习报告

数据结构实验1环境使用实习报告

数据结构实验1环境使用实习报告下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。

文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!1. 引言数据结构是计算机科学中的重要基础,通过实践操作来深入理解数据结构的实际应用至关重要。

数据结构实验一实验报告——线性表

数据结构实验一实验报告——线性表

实验报告课程名称:数据结构实验名称:线性表班级:学生姓名:学号:指导教师评定:签名:题目:有两张非递增有序的线性学生表A,B,采用顺序存储结构,两张表合并用c表存,要求C为非递减有序的,然后删除C表中值相同的多余元素。

一、需求分析⒈本演示程序根据已有的两张表的信息,实现两张表的合并及删除值相同元素的操作,需要用户输入学生的信息。

⒉在演示过程序中,用户输入需要合并的顺序表,即可观看合并结果。

⒊程序执行的命令包括:(1)构造线性表A (2)构造线性表B (3)求两张表的并(4)删除C中值相同的元素二、概要设计⒈为实现上述算法,需要线性表的抽象数据类型:ADT Stack {数据对象:D={a i:|a i∈ElemSet,i=1…n,n≥0}数据关系:R1={<a i-1,a i>|a i-1,a i∈D,i=2,…n≥0}基本操作:init(list *L)操作结果:构造一个空的线性表L。

ListLength(List *L)初始条件:线性表L已经存在操作结果:返回L中数据元素的个数。

GetElem(List L, int i, ElemType *e)初始条件:线性表L已经存在,1≤i≤ListLength(&L)操作结果:用e返回L中第i个数据元素的值。

EqualList(ElemType *e1,ElemType *e2)初始条件:数据元素e1,e2存在操作结果:以e1,e2中的姓名项作为判定e1,e2是否相等的依据。

Less_EquaList(ElemType *e1,ElemType *e2)初始条件:数据元素e1,e2存在操作结果:以e1,e2中的姓名项(为字符串)的≤来判定e1,e2是否有≤的关系。

LocateElem(List *La,ElemType e,int type)初始条件:线性表La已经存在操作结果:判断La中是否有与e相同的元素。

MergeList(List *La,List *Lb,List *Lc)初始条件:非递减线性表La,Lb已经存在操作结果:合并La,Lb得到Lc,Lc仍按非递减有序排列。

数据结构第一次实验报告

数据结构第一次实验报告

数据结构第一次实验报告实验报告:数据结构第一次实验摘要:本次实验旨在通过实践操作,加深对数据结构的理解,并掌握数据结构的基本操作。

实验中,我们使用C++编程语言实现了链表、栈和队列的相关操作,并对其进行了测试和分析。

实验结果表明,我们成功地完成为了链表、栈和队列的实现,并验证了它们的正确性和效率。

1. 引言数据结构是计算机科学中的重要基础课程,它研究数据的组织方式和存储结构,以及对数据进行操作和处理的方法。

本次实验旨在通过实践操作,加深对数据结构的理解,并掌握数据结构的基本操作。

2. 实验目的- 熟悉链表、栈和队列的基本概念;- 掌握链表、栈和队列的基本操作;- 分析链表、栈和队列的时间复杂度。

3. 实验方法3.1 链表的实现我们使用C++编程语言实现了链表的基本操作,包括创建链表、插入节点、删除节点和打印链表等。

具体实现过程如下:- 定义一个链表节点结构体,并在结构体中定义节点的数据域和指针域;- 创建链表,即定义一个头节点,并设置头节点的指针域为空;- 插入节点,即在链表中指定位置插入一个新节点;- 删除节点,即删除链表中指定位置的节点;- 打印链表,即遍历链表并输出节点的数据。

3.2 栈的实现我们使用C++编程语言实现了栈的基本操作,包括入栈、出栈和判断栈是否为空等。

具体实现过程如下:- 定义一个栈结构体,并在结构体中定义一个数组和一个指针top,用于存储栈元素和指示栈顶位置;- 入栈,即将一个元素压入栈中,同时将指针top向上挪移一个位置;- 出栈,即将栈顶元素弹出栈,同时将指针top向下挪移一个位置;- 判断栈是否为空,即判断指针top是否指向栈底。

3.3 队列的实现我们使用C++编程语言实现了队列的基本操作,包括入队、出队和判断队列是否为空等。

具体实现过程如下:- 定义一个队列结构体,并在结构体中定义一个数组、一个指针front和一个指针rear,用于存储队列元素和指示队首和队尾位置;- 入队,即将一个元素插入队列尾部,同时将指针rear向后挪移一个位置;- 出队,即将队首元素删除,同时将指针front向后挪移一个位置;- 判断队列是否为空,即判断指针front和指针rear是否相等。

数据结构实验报告-实验一顺序表、单链表基本操作的实现

数据结构实验报告-实验一顺序表、单链表基本操作的实现

数据结构实验报告-实验⼀顺序表、单链表基本操作的实现实验⼀顺序表、单链表基本操作的实现l 实验⽬的1、顺序表(1)掌握线性表的基本运算。

(2)掌握顺序存储的概念,学会对顺序存储数据结构进⾏操作。

(3)加深对顺序存储数据结构的理解,逐步培养解决实际问题的编程能⼒。

l 实验内容1、顺序表1、编写线性表基本操作函数:(1)InitList(LIST *L,int ms)初始化线性表;(2)InsertList(LIST *L,int item,int rc)向线性表的指定位置插⼊元素;(3)DeleteList1(LIST *L,int item)删除指定元素值的线性表记录;(4)DeleteList2(LIST *L,int rc)删除指定位置的线性表记录;(5)FindList(LIST *L,int item)查找线性表的元素;(6)OutputList(LIST *L)输出线性表元素;2、调⽤上述函数实现下列操作:(1)初始化线性表;(2)调⽤插⼊函数建⽴⼀个线性表;(3)在线性表中寻找指定的元素;(4)在线性表中删除指定值的元素;(5)在线性表中删除指定位置的元素;(6)遍历并输出线性表;l 实验结果1、顺序表(1)流程图(2)程序运⾏主要结果截图(3)程序源代码#include<stdio.h>#include<stdlib.h>#include<malloc.h>struct LinearList/*定义线性表结构*/{int *list; /*存线性表元素*/int size; /*存线性表长度*/int Maxsize; /*存list数组元素的个数*/};typedef struct LinearList LIST;void InitList(LIST *L,int ms)/*初始化线性表*/{if((L->list=(int*)malloc(ms*sizeof(int)))==NULL){printf("内存申请错误");exit(1);}L->size=0;L->Maxsize=ms;}int InsertList(LIST *L,int item,int rc)/*item记录值;rc插⼊位置*/ {int i;if(L->size==L->Maxsize)/*线性表已满*/return -1;if(rc<0)rc=0;if(rc>L->size)rc=L->size;for(i=L->size-1;i>=rc;i--)/*将线性表元素后移*/L->list[i+=1]=L->list[i];L->list[rc]=item;L->size++;return0;}void OutputList(LIST *L)/*输出线性表元素*/{int i;printf("%d",L->list[i]);printf("\n");}int FindList(LIST *L,int item)/*查找线性元素,返回值>=0为元素的位置,返回-1为没找到*/ {int i;for(i=0;i<L->size;i++)if(item==L->list[i])return i;return -1;}int DeleteList1(LIST *L,int item)/*删除指定元素值得线性表记录,返回值为>=0为删除成功*/ {int i,n;for(i=0;i<L->size;i++)if(item==L->list[i])break;if(i<L->size){for(n=i;n<L->size-1;n++)L->list[n]=L->list[n+1];L->size--;return i;}return -1;}int DeleteList2(LIST *L,int rc)/*删除指定位置的线性表记录*/{int i,n;if(rc<0||rc>=L->size)return -1;for(n=rc;n<L->size-1;n++)L->list[n]=L->list[n+1];L->size--;return0;}int main(){LIST LL;int i,r;printf("list addr=%p\tsize=%d\tMaxsize=%d\n",LL.list,LL.size,LL.Maxsize);printf("list addr=%p\tsize=%d\tMaxsize=%d\n",LL.list,LL.list,LL.Maxsize);while(1){printf("请输⼊元素值,输⼊0结束插⼊操作:");fflush(stdin);/*清空标准输⼊缓冲区*/scanf("%d",&i);if(i==0)break;printf("请输⼊插⼊位置:");scanf("%d",&r);InsertList(&LL,i,r-1);printf("线性表为:");OutputList(&LL);}while(1){printf("请输⼊查找元素值,输⼊0结束查找操作:");fflush(stdin);/*清空标准输⼊缓冲区*/scanf("%d ",&i);if(i==0)break;r=FindList(&LL,i);if(r<0)printf("没有找到\n");elseprintf("有符合条件的元素,位置为:%d\n",r+1);}while(1){printf("请输⼊删除元素值,输⼊0结束查找操作:");fflush(stdin);/*清楚标准缓存区*/scanf("%d",&i);if(i==0)break;r=DeleteList1(&LL,i);if(i<0)printf("没有找到\n");else{printf("有符合条件的元素,位置为:%d\n线性表为:",r+1);OutputList(&LL);}while(1){printf("请输⼊删除元素位置,输⼊0结束查找操作:");fflush(stdin);/*清楚标准输⼊缓冲区*/scanf("%d",&r);if(r==0)break;i=DeleteList2(&LL,r-1);if(i<0)printf("位置越界\n");else{printf("线性表为:");OutputList(&LL);}}}链表基本操作l 实验⽬的2、链表(1)掌握链表的概念,学会对链表进⾏操作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
newbase = (ElemType *)realloc(L.elem,(L.listsize + LISTINCREMENT) * sizeof(ElemType));
if(!newbase) exit(OVERFLOW); //储存分配失败
L.elem = newbase; //新基址
L.listsize += LISTINCREMENT; //增加储存容量
for(i = 1; i <= Lc.length; i++){
elem = Lc.elem[i-1];
if(!LocateElem_Sq(La,elem,Equal))
ListInsert_Sq(Ld,Ld.length+1,elem);
}
}
void Index_Sq(){
char s;
int l;
l = 1;
InitList_Sq(La);
printf("\t\t\t|******请输入你的第一个集合:******|\n");
printf("\t\t\t");
CreateList_Sq(La);
printf("\t\t\t#\t集合A为");
Print_Sq(La); //实现表LA的操作
printf("\t\n\n");
for(i = 0; i < L.length; i++)
printf("%2c",L.elem[i]);
if(L.length == 0) printf("该集合为空集");
printf("\n\t\t\t#\t此集合中的个数n = %d\n\n",L.length);
}
/**求集合的并集的函数**/
L.length = 0; /**空表长度为0**/
L.listsize = LIST_INIT_SIZE; /**初始储存容量**/
return OK;
} /**该函数的时间复杂度为O(n)**/
/**在顺序表的逻辑为i的位置插入新元素e的函数**/
Status ListInsert_Sq(SqList &L,int i,ElemType e){
printf("\t\t|************* b、进行集合的交运算***************|\n");
printf("\t\t|************* c、进行集合的差运算***************|\n");
printf("\t\t|************* d、进行集合的补运算***************|\n");
} //该函数的时间复杂度为O(n)
/*销毁线性表的函数*/
Status Clear_Sq(SqList &L){
ElemType elem;
free(L.elem);
L.elem = NULL;
return OK;
}
/**打印顺序表函数**/
void Print_Sq(SqList L){
int i;
1.对线性表ADT的具体实现。
2.程序算法的高效性和健壮性。
3.运行结果的截图。
实验过程及实2.注意代码的可读性
3.熟练掌握编译器的调试功能
附录
见附录代码
附录代码
集合运算器
#include<stdio.h>
#include<stdlib.h>
#define TRUE 1
}SqList;
SqList La,Lb,Lc,Ld; /**定义全局变量**/
/**构造一个空的线性表L**/
Status InitList_Sq(SqList &L){
L.elem = (ElemType *)malloc(LIST_INIT_SIZE * sizeof(ElemType));
if(!L.elem) exit(OVERFLOW); /**储存分配失败**/
printf("\t\t\t#\t集合A的补集为:");
Print_Sq(Ld); //实现表LA的补集操作
printf("\n");
break;
case 'e' : Clear_Sq(La);
Clear_Sq(Lb);
Clear_Sq(Lc);
Clear_Sq(Ld);
getchar();
Index_Sq();
typedef char ElemType; /*ElemType类型根据实际情况而定,这里假设为char*/
/**顺序表的定义**/
typedef struct{
ElemType *elem; /**储存空间基地址**/
int length; /**当前长度**/
int listsize; /**当前分配的储存容量(以sizeof(Elemtype)为单位)**/
Print_Sq(Lc); //实现表LA与表LB并集的操作
printf("\n");
break;
case 'b' : Mix_Sq(La,Lb,Lc);
printf("\t\t\t#\t集合A与集合B的交集为:");
Print_Sq(Lc); //实现表LA与表LB交集的操作
printf("\n");
if(a == b) return TRUE;
else return FALSE;
}
/**在顺序线性表L中查找第1个与e满足compare()的元素位序,若找到,则返回其在L中的位序,否则返回0**/
int LocateElem_Sq(SqList L,ElemType e,Status(* compare)(ElemType,ElemType)){
break;
}
else
inlist = FALSE;
if(!inlist && ch != '\n') ListInsert_Sq(L,L.length+1,ch);
}
}
/**判断两元素是否相等,若相等则返回TRUE;否则返回FALSE**/
Status Equal(ElemType a,ElemType b){
#define FALSE 0
#define OK 1
#define ERROR 0
#define OVERFLOW -1
#define LIST_INIT_SIZE 100 //初始表空间大小
#define LISTINCREMENT 10 //表长增量
typedef int Status; /**Status是函数类型,其值是函数结果状态代码,如OK等**/
InitList_Sq(Lb);
printf("\t\t\t|******请输入你的第二个集合:******|\n");
printf("\t\t\t");
CreateList_Sq(Lb);
printf("\t\t\t#\t集合B为");
Print_Sq(Lb); //实现表LB的操作
printf("\t\n\n");
ElemType elem;
Lc.length = 0;
for(i = 1; i <= La.length; i++){
elem = La.elem[i-1];
if(LocateElem_Sq(Lb,elem,Equal))
ListInsert_Sq(Lc,Lc.length+1,elem);
}
}
/**求集合的差集函数**/
}
q = &(L.elem[i - 1]); //q为插入位置
for(p = &(L.elem[L.length - 1]); p >= q; --p)
*(p + 1) = *p; //插入位置及之后的元素往右移
*q = e; //插入e
++L.length; //表长加1
return OK;
}
/**创建一个线性表,即输入数据,根据集合定义:集合中的元素不能相等创建**/
ElemType *p;
int i;
i = 1; //i的初值为第1个元素的位序
p = L.elem; //p的初值为第1个元素的储存位置
while(i <= L.length && !(* compare)(*p++,e)) ++i;
if(i <= L.length) return i;
else return 0;
printf("\t\t|************* e、重新建立两个集合***************|\n");
printf("\t\t\t");
scanf("%c",&s);
switch(s){
case 'a' : Union_Sq(La,Lb,Lc);
printf("\t\t\t#\t集合A与集合B的并集为:");
ElemType *newbase,*p,*q;
//i的合法值为(1 <= i <= L.length_Sq(L) + 1)
//异常处理
if(i < 1 || i > L.length + 1) return ERROR;
相关文档
最新文档