数据结构第二章实验报告

合集下载

数据结构实验报告 (2)

数据结构实验报告 (2)

数据结构实验报告实验报告数据结构实验报告应包含以下几个部分:1. 实验目的:简要介绍实验的目的和意义。

2. 原理介绍:详细介绍本次实验所涉及的数据结构原理,包括数据结构的定义、特性以及相关算法或操作。

3. 实验内容:详细描述本次实验的具体内容,包括实验要求和实验步骤。

4. 实验结果:展示实验的结果,以适当的方式呈现实验数据和实验输出。

可以包括图表、表格、代码等。

5. 分析讨论:分析实验结果,讨论实验结果与预期结果的差异,并给出相应的解释。

6. 实验总结:对本次实验的总结和评价,包括实验的收获、不足之处以及改进的建议。

以下是一个简单的数据结构实验报告的范例:实验目的:本次实验的目的是熟悉链表数据结构的概念和基本操作,包括链表的插入、删除和查找等。

原理介绍:链表是一种常用的数据结构,它由一组节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。

链表中的节点可以通过指针相互连接,从而形成一串有序的数据。

链表不同于数组,它的插入和删除操作十分高效,但查找效率较低。

实验内容:本次实验要求实现一个链表,并在链表中实现插入、删除和查找操作。

首先,定义一个节点结构,并实现节点的插入和删除操作;其次,实现查找操作,并根据查找结果返回节点位置或者相关信息。

实验结果:经过实验,我们得到了以下结果:在链表中插入节点的时间复杂度为O(1),删除节点的时间复杂度为O(1),查找节点的时间复杂度为O(n)。

分析讨论:从结果可以看出,链表的插入和删除操作的效率较高,但查找操作的效率较低。

这是因为链表中的节点没有连续的存储空间,所以需要遍历整个链表才能找到目标节点。

如果需要频繁进行查找操作,可以考虑使用其他数据结构,如二叉搜索树或哈希表。

实验总结:通过本次实验,我们深入了解了链表数据结构的原理和基本操作,并实现了一个简单的链表。

在以后的学习和实践中,我们可以根据实际需求选择合适的数据结构,以提高程序的效率和性能。

此外,本次实验也让我们更加熟悉了编程的过程和技巧。

数据结构实验2报告总结

数据结构实验2报告总结

一实验目的和要求理解二叉树的基本概念,熟练使用多种表示法构造二叉树,掌握采用二叉链表存储结构实现二叉树的构造、遍历、插入、删除等操作算法;理解线索二叉树的作用,掌握获得线索二叉树节点在指定遍历次序下的前驱或后继结点的方法;理解哈弗曼编码和哈弗曼树的作用,掌握由指定文本求得哈弗曼编码的方法。

理解树的基本概念,熟悉树的多种存储结构,掌握采用孩子兄弟链表存储结构实现树的遍历、插入、删除等操作算法。

通过研究树和二叉树,深刻理解链式存储结构用于表达非线性结构的作用,掌握采用递归算法实现递归数据结构基本操作的设计方法。

二题目及题意分析题目:插入x元素作为p结点的第i个孩子分析:以中国城市作为元素,以插入孩子结点的方式构造一棵树,找到结点p,p不为空时,若p的孩子结点为空,则直接插入x元素作为p的孩子;若p的孩子结点不为空,插入的x元素的位置n小于等于1时,将x元素直接插在最前面;若n大于1时,查找插入的位置执行插入。

三设计方案和功能说明源程序如下:TreeNode.htemplate<class T>class TreeNode //数的孩子兄弟链表结点类{public: //数据域,保存元素T data;TreeNode<T>* child,*sibling; //指针域,分别指向孩子兄弟结点TreeNode<T>(T data,TreeNode<T>*child=NULL,TreeNode<T>*sibling=NULL){this->data=data;this->child=child;this->sibling=sibling;}};Tree.h#include<iostream.h>#include"TreeNode.h" //树的孩子兄弟链表节点类template<class T>class Tree //树类{public:TreeNode<T>*root; //指向根结点Tree(); //构造空树bool isEmpty();//判断是否空树TreeNode<T>* insertChild(TreeNode<T>*p,T value); // 插入value作为结点p的孩子TreeNode<T>* insertChild(TreeNode<T>*p,T x,int i);// 插入x元素作为p结点的第i 个孩子friend ostream&operator<<(ostream&out,Tree<T>&tree);//先根次序遍历树并以树的横向凹入表示法输出树void preOrder(TreeNode<T> *p,int i);};template<class T>Tree<T>::Tree() //构造空树{root=NULL;}template<class T>bool Tree<T>::isEmpty()//判断是否空树{return root==NULL;}template<class T>TreeNode<T>* Tree<T>::insertChild(TreeNode<T>*p,T value) //插入value作为结点p的孩子{TreeNode<T>*q=NULL;if(p!=NULL){q=new TreeNode<T> (value);if(p->child==NULL)p->child=q;else{p=p->child;while(p->sibling!=NULL)p=p->sibling;p->sibling=q;}}return q;}template<class T>TreeNode<T>*Tree<T>::insertChild(TreeNode<T>* p,T x,int i)// 插入x元素作为p结点的第i 个孩子{TreeNode<T>*q=NULL;if(p!=NULL){q=new TreeNode<T>(x);if(p->child==NULL)p->child=q;else{{if(i<=1)//带有容错功能{p->child=new TreeNode<T>(x,NULL,p->child);return p->child;}p=p->child;for(int j=1;p->sibling!=NULL&&j<i-1;j++)p=p->sibling;if( p->sibling==NULL)p->sibling=q;elsep->sibling=new TreeNode<T>(x,NULL,p->sibling);}}}return q;}template<class T>void Tree<T>::preOrder(TreeNode<T> *p,int i){if(p!=NULL){for(int j=0;j<i;j++)cout<<"\t";cout<<p->data<<endl;preOrder(p->child,i+1);preOrder(p->sibling,i);}}template<class T>ostream&operator<<(ostream&out,Tree<T> &tree)//先根次序遍历树并以树的横向凹入表示法输出树{tree.preOrder(tree.root,0);return out;}Main.cpp#include "Tree.h"TreeNode<char*>*aa;void make(Tree<char*>&tree){tree.root=new TreeNode<char*>("中国");tree.insertChild(tree.root,"北京");tree.insertChild(tree.root,"上海");TreeNode<char*>*js=tree.insertChild(tree.root,"江苏省");tree.insertChild(js,"南京市");tree.insertChild(js,"苏州市");TreeNode<char*> *zj=tree.insertChild(tree.root,"浙江省");tree.insertChild(zj,"杭州市");tree.insertChild(zj,"宁波市");TreeNode<char*> *sx=tree.insertChild(tree.root,"山西省");tree.insertChild(sx,"太原市");tree.insertChild(sx,"大同市");aa=zj;}int main(){Tree<char*>tree;make(tree);cout<<tree;tree.insertChild(aa,"无锡市",2);cout<<tree;return 0;}四运行结果及分析1插入位置小于等于1(即n<=1)n=-2时n=0时n=1时2插入位置大于1(即n>1)n=2时五实验总结通过实验理解了树及二叉树的存储结构熟悉掌握了孩子兄弟链表的存储结构实现,以及遍历、查找、删除等操作,深刻理解实现链式存储结构表达非线性的树存储结构。

数据结构实验报告2

数据结构实验报告2

数据结构实验报告2数据结构实验报告21、实验目的本次实验的目的是通过使用数据结构来解决一个特定的问题。

具体而言,我们将会使用某种数据结构(例如链表、堆栈、队列等)来实现一个特定功能,并对其性能进行评估。

2、实验背景在本次实验中,我们将会探索数据结构在解决实际问题中的应用。

数据结构是计算机科学的重要组成部分,它提供了一种组织和管理数据的方式,以便能够高效地访问和操作这些数据。

3、实验内容在本次实验中,我们选择了一种经典的数据结构,以实现一个特定的功能。

具体而言,我们将会使用链表来实现一个简单的联系人管理系统。

3.1 数据结构选择我们选择了链表作为联系人管理系统的数据结构。

链表是一种灵活的数据结构,它能够动态地增加或删除元素,并且支持高效的插入和删除操作。

3.2 实现功能我们的联系人管理系统将会具有以下功能:- 添加联系人:用户可以输入联系人的姓名、方式号码等信息,并将其添加到联系人列表中。

- 删除联系人:用户可以选择要删除的联系人,并从列表中删除该联系人。

- 查找联系人:用户可以根据姓名或方式号码来查找联系人,并显示相关信息。

- 显示所有联系人:系统将会将所有联系人按照姓名的字母顺序进行排序,并将其显示在屏幕上。

4、实验步骤下面是本次实验的具体步骤:4.1 初始化联系人管理系统在系统开始之前,我们需要初始化联系人管理系统。

这包括创建一个空的联系人列表,并提供用户菜单来选择相应功能。

4.2 添加联系人用户可以选择添加联系人的功能,并输入联系人的相关信息。

系统将会将联系人添加到联系人列表中。

4.3 删除联系人用户可以选择删除联系人的功能,并输入要删除联系人的姓名或方式号码。

系统将会在联系人列表中查找并删除相应联系人。

4.4 查找联系人用户可以选择查找联系人的功能,并输入要查找联系人的姓名或方式号码。

系统将会在联系人列表中查找相应联系人,并显示其相关信息。

4.5 显示所有联系人用户可以选择显示所有联系人的功能。

数据结构实验报告2

数据结构实验报告2

数据结构实验报告2一、实验目的本次数据结构实验旨在通过实际操作和编程实践,深入理解和掌握常见的数据结构,如链表、栈、队列、树等,并能够运用所学知识解决实际问题,提高编程能力和算法设计能力。

二、实验环境本次实验使用的编程语言为C++,开发环境为Visual Studio 2019。

三、实验内容(一)链表的实现与操作1、单向链表的创建首先,定义了链表节点的结构体,包含数据域和指向下一个节点的指针域。

然后,通过函数实现了单向链表的创建,从用户输入获取节点的数据,依次创建新节点并连接起来。

2、链表的遍历编写函数实现对单向链表的遍历,依次输出每个节点的数据。

3、链表的插入与删除实现了在指定位置插入节点和删除指定节点的功能。

插入操作时,需要找到插入位置的前一个节点,修改指针完成插入。

删除操作时,同样找到要删除节点的前一个节点,修改指针并释放删除节点的内存。

(二)栈的实现与应用1、栈的基本操作使用数组实现了栈的数据结构,包括入栈、出栈、判断栈空和获取栈顶元素等操作。

2、表达式求值利用栈来实现表达式求值的功能。

将表达式中的数字和运算符分别入栈,按照运算规则进行计算。

(三)队列的实现与应用1、队列的基本操作使用循环数组实现了队列,包括入队、出队、判断队空和队满等操作。

2、模拟银行排队系统通过创建队列来模拟银行客户的排队情况,实现客户的入队和出队操作,统计平均等待时间等。

(四)二叉树的遍历1、二叉树的创建采用递归的方式创建二叉树,用户输入节点数据,构建二叉树的结构。

2、先序、中序和后序遍历分别实现了二叉树的先序遍历、中序遍历和后序遍历,并输出遍历结果。

四、实验结果与分析(一)链表实验结果成功创建、遍历、插入和删除单向链表。

通过对链表的操作,深入理解了链表的动态存储特性和指针的运用。

在插入和删除操作中,能够正确处理指针的修改和内存的释放,避免了内存泄漏和指针错误。

(二)栈实验结果栈的基本操作运行正常,能够正确实现入栈、出栈等功能。

数据结构实验报告二二叉树实验

数据结构实验报告二二叉树实验

实验报告课程名称:数据结构
第 1 页共4 页
五、实验总结(包括心得体会、问题回答及实验改进意见,可附页)
这次实验主要是建立二叉树,和二叉树的先序、中序、后续遍历算法。

通过这次实验,我巩固了二叉树这部分知识,从中体会理论知识的重要性。

在做实验之前,要充分的理解本次实验的理论依据,这样才能达到事半功倍的效果。

如果在没有真正理解实验原理之盲目的开始实验,只会浪费时间和精力。

例如进行二叉树的遍历的时候,要先理解各种遍历的特点。

先序遍历是先遍历根节点,再依次先序遍历左右子树。

中序遍历是先中序遍历左子树,再访问根节点,最后中序遍历右子树。

而后序遍历则是先依次后续遍历左右子树,再访问根节点。

掌握了这些,在实验中我们就可以融会贯通,举一反三。

其次要根据不光要懂得代码的原理,还要对题目有深刻的了解,要明白二叉树的画法,在纸上先进行自我演练,对照代码验证自己写的正确性。

第 3 页共4 页
第 4 页共4 页。

清华大学版数据结构第二章实验报告

清华大学版数据结构第二章实验报告

{ // 在带头结点的单链线性表L中,删除第i个 元素 LinkList *p,*q; p = L; int j = 0; while (p->next && j < i-1) { // 寻找第i个结点,并令p指向其前趋 p = p->next; ++j; } if (!(p->next) || j > i-1) return ERROR; // 删除位置不合理 q = p->next; p->next = q->next; // 删除并释放结点 free(q); return OK; } // ListDelete_L void MergeList_L(LinkList La, LinkList Lb, LinkList Lc) { // 已知单链线性表La和Lb的元素按值非递减排列。 // 归并La和Lb得到新的单链线性表Lc,Lc的元素也按值非递减排列。 LinkList *pa, *pb, *pc; pa = La->next; pb = Lb->next; Lc = pc = La; // 用La的头结点作为Lc的头结点 while (pa && pb) { if (pa->data <= pb->data) { pc->next = pa; pc = pa; pa = pa->next; } else { pc->next = pb; pc = pb; pb = pb->next; } } pc->next = pa ? pa : pb; // 插入剩余段 free(Lb); // 释放Lb的头结点 } // MergeList_L
2、链表的操作 #include<stdio.h> #include<stdlib.h> #define ERROR 0 #define NULL 0 #define OK 1 #define LIST_INIT_SIZE 10 #define TRUE 1 #define FALSE 0 #define INFEASIBLE -1 #define OVERFLOW -2 #define ElemType int typedef struct LNode{ //结点类型 ElemType data; struct LNode *next; }*Link,*Position; typedef struct { //链表类型 Link head,tail; int len; }LinkList; void Create_Link(LinkList *p,int n)//建立一个含n个结点的单链表 { int i; LNode *q,*r; p=(LNode *)malloc(sizeof(LNode)); p->next=NULL; for(i=1;i<=n;i++) { q=(LNode *)malloc(sizeof(LNode)); scanf("%d",q->data); q->next=r->next; r->next=q; r=q; } }

数据结构实验报告

数据结构实验报告
实验过程(实验中涉及的记录、数据、分析):
typedef OrderedLinkList polynomial;
// 用带表头结点的有序链表表示多项式
结点的数据元素类型定义为:
typedef struct polynomialnode { // 项的表示
float coef; // 系数
int expn; // 指数
while (pa&&pb) {a=pa->exn;b=pb->expn;
switch(*cmp(a,b)){ //a,b分别为pa,pb所指结点的指数
case -1:pc=pa;pa=pa->next; break; //a<b
case 0: {sum=pa->coef+pb->coef;
if (sum<>0){pa->coef=sum;pc=pa;}
else{pc->next=pa->next;free(pa);}
pa=pc->next;u=pb;pb=pb->next;free(u);
break;} //a=b
case 1: {u=pb->next;pb->next=pa;pc->next=pb;
pc=pb;pb=u; break;} //a>b
数据结构课程实验报告
学生姓名
某某
学 号
你的学号
班 级
计算机科学
指导老师
指导老师名字
实验名称
实验2 线性表
实验成绩
86
实验报告




实验目的:掌握线性表的基本操作如线性表的初始化、查找、插入、删除等,以及线性表的存概储结构的运用,并利用线性表实现一元多项式的相加。

数据结构实验二报告模板

数据结构实验二报告模板

数据结构实验2 回文判断班级:java092学号:200907092240姓名:赵冬冬实验一回文判断一、实验目的熟练栈和队列的各种操作。

二、实验内容1.同时建立一个栈和一个队列,即:每从键盘上输入一个字符,就把它作为一个新的栈和队列结点的数据域,插入到栈和队列。

这样就同时建立了一个栈和一个队列。

然后,让栈出栈的同时队列出队,比较它们是相等。

2.设计简单的程序实现回文判断的操作,加注释!//回文判断.cpp#include<stdio.h>#include<stdlib.h>typedef struct Node //定义队列结点类型{char data;struct Node *next;}Linkqueuenode;typedef struct {Linkqueuenode *front;//定义队列的对首指针Linkqueuenode *rear;//定义队列的对尾指针}Linkqueue;typedef struct node //定义栈结点类型{char data;struct node *next;}LinkStackNode,*LinkStack;void push( LinkStack top,char x) //进栈{LinkStackNode *temp; //创建新结点temp=(LinkStackNode *)malloc(sizeof(LinkStackNode));//分配空间temp->data=x;//接点赋值temp->next=top->next;top->next=temp;//数据进栈}void getinmain() //功能界面{printf("\t\t__________________________________________\n");printf("\t\t\t\t回文检测\t\t\n");printf("\n\n");printf("\t\t\t\t1. 输入字符串\n");printf("\t\t\t\t2. 检测是否为回文\n");printf("\t\t\t\t3. 退出\n");printf("\n请按指定的数字进行相应的操作:\n");}int queue(Linkqueue *q) //初始化队列{q->front=(Linkqueuenode *)malloc(sizeof(Linkqueuenode));//队列分配空间if(q->front!=NULL)//判断队是否为空{q->rear=q->front;//初始化队,使队为空q->front->next=NULL;return 1;}else return 0;}int enter(Linkqueue *q,char x) //入队操作{Linkqueuenode *newnode;//创建新结点newnode=(Linkqueuenode *)malloc(sizeof(Linkqueuenode));//队列分配空间if(newnode!=NULL){newnode->data=x;//结点赋值newnode->next=NULL;q->rear->next=newnode;//数据入队q->rear=newnode;return 1;}else return 0;}void pushenter(LinkStack top,Linkqueue *q) //一个元素同时进栈和入队{printf("请输入元素并以$结束\n");char x;//进栈和入队的元素scanf("%c",&x);while(x!='$')//输入$字符是停止循环{push(top,x);enter(q,x);scanf("%c",&x);//元素同时进栈和入队}printf("数据进栈入列成功!\n");}void check(LinkStack top,Linkqueue *p)//检测是否为回文数{char a,b;int c=0;Linkqueuenode *q;LinkStack w;w=top->next;q=p->front->next;while(q!=NULL&&w->next!=NULL)//判断队列和栈是否为空{a=w->data;//队列和栈不为空则进行出队和出栈操作b=q->next->data;q=q->next;w=w->next;printf("a=%c b=%c\n",a,b);if(a!=b)//检测是否为回文数{c=1;printf(">>>>>>>>>>>>>>>>不为回文<<<<<<<<<<<<<<<<<\n");break;}}if(c==0)printf("\n>>>>>>>>>>>>>>>>为回文<<<<<<<<<<<<<<<<<\n");}void main(){LinkStackNode top;//声明一个栈结点top.next=NULL;//将栈顶值为空Linkqueue q;queue(&q);//初始化队列system("pause");system("cls");s: getinmain();//进入功能选择界面int b;scanf("%d",&b);//选择功能switch(b){case 1:pushenter(&top,&q);system("pause");system("cls");goto s;case 2:check(&top,&q);system("pause");system("cls");goto s;case 3:exit(0);};}//实现各子函数并且加注释运行结果如下图:1、主菜单运行图2、输入数据2、检验是否为回文三、编程并上机调试运行四、时间、地点2011-4-8(星期五)软件学院机房五、指导教师邢莹(在书写过程中若出现错误,望老师指出,谢谢)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、实验题目
(1)掌握线性表的顺序存储结构和链式存储结构。

(2)掌握线性表插入、删除等基本运算。

(3)掌握线性表的典型应用——多项式求和。

2、实验内容
(1)顺序存储结构的实现。

(2)链式存储结构的实现。

(3)编程实现多项式求和的运算。

3、实验要求
(1)利用C语言完成算法的设计和程序设计。

(2)上机调试通过实验程序。

(3)输入数据,检验程序运算结果。

(4)给出具体的算法分析,包括时间复杂度和空间复杂度等。

(5)撰写实验报告。

4、实验步骤与源程序
⑴实验步骤
1、输入多项式变量X的最高次数
2、利用For循环i小于最高次幂,分别输入每一项的次幂数,完成一个多项式,再输入另一个多项式。

完成多项式的输入。

3、建立链表函数List(SeqList A, SeqList B, SeqList *C)实现多项式的每项的相加。

⑵源代码:
1)顺序存储结构的源代码:
#include<stdio.h>
#define MAXLEN 100
typedef struct
{ int data[MAXLEN];
int last;
} SeqList;
//多项式相加
void add_List(SeqList A, SeqList B, SeqList *C)
{ int i;
C->last=st>st? st:st;
for(i=0;i<=C->last;i++)
C->data[i]=A.data[i]+B.data[i];
getchar();
}
//显示多项式
void show_list(SeqList C)
{ int i;
for(i=st;i>=1;i--)
if(C.data[i])
printf("\(%dx^%d\)+",C.data[i],i);
printf("\(%dx^%d\)\n",C.data[0],0);
}
//生成一个多项式
void create_list(SeqList *D)
{ int n,i;
printf("请按多项式X的最高次数:");
scanf("%d",&n);
for(int k=99;k>=0;k--)
D->data[k]=0;
printf("请按多项式X的次数由大到小输入系数,缺少项用0补齐\n"); for(i=n;i>=0;i--)
{ printf("输入X^%d项的系数: ",i);
scanf("%d",&D->data[i]);
}
D->last=n;
}
void main() // 主程序{ SeqList A,B,C;
printf("生成多项式A(x):\n");
create_list(&A);
printf("A(x)=");
show_list(A);
printf("生成多项式B(x):\n");
create_list(&B);
printf("B(x)=");
show_list(B);
printf("多项式A(x)和B(x)的和 ");
add_List (A,B,&C);
printf("C(x)=");
show_list(C);
}
2)链式存储结构源代码:
#include<stdio.h>
#include<malloc.h>
#include<math.h>
typedef struct linknode
{
float coef;
int expn;
struct linknode *next;
} Node;
void create_link_list(Node *L) // 创建一个链式存储结构的多项式{ Node *p,*q;
int n=1;
float x=1;
q=L;
printf("请按多项式指数由大到小输入系数和指数:\n");
while(fabs(x)>0.000001 )
{ scanf("%f %d",&x,&n);
if(fabs(x)>0.00001)
{ p=(Node *) malloc(sizeof(Node));
p->coef=x;
p->expn=n;
p->next=NULL;
q->next=p ;
q=p;
}
}
}
void show_link_list(Node *L) // 显示一个多项式
{
Node *p;
p=L->next;
while(p&&p->next )
{ printf("\(%fx^%d\) + ",p->coef,p->expn);
p=p->next;
}
printf("\(%fx^%d\) ",p->coef,p->expn);
printf("\n");
}
void mergelist(Node *La,Node *Lb,Node *Lc) // 多项式合并{ Node *pa,*pb,*pc;
Node *q1,*q2;
Lc=La;
pc=Lc;
pa=La->next;
pb=Lb->next;
while(pa && pb)
if(pa->expn > pb->expn)
{ pc->next=pa;pc=pa;pa=pa->next;}
else if(pa->expn < pb->expn)
{ pc->next=pb;pc=pb;pb=pb->next;}
else if(fabs(pa->coef+pb->coef)<0.000001)
{ q1=pa;
q2=pb;
pa=pa->next;
pb=pb->next;
free(q1);
free(q2);
}
else { q1=pb;pa->coef=pa->coef+pb->coef; pc->next=pa;
pc=pa;
pa=pa->next;
pb=pb->next;
free(q1);
}
if(pa)
pc->next=pa;
else
pc->next=pb;
}
void main() // 主函数{
Node *LA,*LB,*LC;
LA=(Node *)malloc(sizeof(Node));
LA->next=NULL;
LB=(Node *)malloc(sizeof(Node));
LB->next=NULL;
LC=LA;
create_link_list( LA);
printf("LA(x) = ");
show_link_list(LA);
create_link_list( LB);
printf("LB(x) = ");
show_link_list(LB);
mergelist(LA,LB,LC);
printf("LA(x)+LB(x)= ");
show_link_list(LC);
}
5、测试数据与实验结果:
1)顺序存储结构
2、链式存储结构:
6、结果分析与实验体会:。

相关文档
最新文档