收藏 分销(赏)

2-21实验报告.doc

上传人:w****g 文档编号:2648522 上传时间:2024-06-03 格式:DOC 页数:6 大小:38.51KB
下载 相关 举报
2-21实验报告.doc_第1页
第1页 / 共6页
2-21实验报告.doc_第2页
第2页 / 共6页
2-21实验报告.doc_第3页
第3页 / 共6页
2-21实验报告.doc_第4页
第4页 / 共6页
2-21实验报告.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、东莞理工学院计算机学院2015-2016第1学期算法与数据结构实验报告姓名:陈映琼学号:201441404142题目:设带头结点的单链表L1和L2中分别存放着两个数据元素集合,编写算法判断集合L1是否是L2的子集,即判断集合L1中的数据元素是否都是集合L2中的数据元素。问题描述:有两个带头结点的单链表L1和L2中分别存放着数据元素集合,判断集合L1是否是集合L2的子集。模块划分:第一个模块,定义单链表结点的结构体,第二个模块,设计一个函数,创建头结点,第三个模块,编写一个将元素e插入到链表L的第i个位置的函数,第四个模块,编写一个输出带头结点单链表的数据元素的函数,第五个模块,首先编写一个输出

2、带头结点单链表的长度的函数,再编写一个判断集合L1中的数据元素是否都是集合L2中的数据元素,这个函数需调用输出长度的函数,第六个模块,编写main函数,测试代码。源程序:#include#include typedef int Status;typedef int ElemType;#define FALSE 0#define TRUE 1typedef struct NodeElemType data;/ 数据域struct Node* next;Node,*LinkList;LinkList InitList()/创建头结点LinkList L;L = (LinkList)malloc(s

3、izeof(Node);if(L=NULL) printf(申请头结点失败!n);return NULL;L-next = NULL;return L;Status ListInsert(LinkList *L,int i,ElemType e)/将元素e插入到链表L的第i个位置int j = 1;LinkList p,s;p = *L;/p直接等于链表L,才有头结点while (p & jnext;+j;if(!p | j i)return FALSE;s = (LinkList)malloc(sizeof(Node);s-data = e;s-next = p-next;/这里p-next

4、就是指向位置ip-next = s;return TRUE;void PrintList(LinkList L)LinkList p;p = L-next;while (p != NULL)printf(%dt,p-data);p = p-next;printf(n);Status Length(LinkList head)LinkList p = head-next;Status i = 0;while(p != NULL)i+;p = p-next;return i;void Judge(LinkList head1,LinkList head2)LinkList p1 = head1-n

5、ext,p2 = head2-next;if(Length(head1) Length(head2)printf(集合L1不是集合L2的子集。n);return;while(p1 != NULL)p2 = head2-next;while(1)if(p2 != NULL)&(p1-data != p2-data)p2 = p2-next;if(p2 != NULL)&(p1-data = p2-data)break;if(p2 = NULL)printf(集合L1不是集合L2的子集。n);return;p1 = p1-next;printf(集合L1是集合L2的子集。n);int main()

6、LinkList head1,head2;int len,i,num;head1 = InitList();head2 = InitList();printf(请输入集合L1元素的个数。n);scanf(%d,&len);printf(请输入元素:n);for(i = 1;i = len;i+)scanf( %d,&num);ListInsert(&head1,i,num);PrintList(head1);printf(请输入集合L2元素的个数。n);scanf(%d,&len);printf(请输入元素:n);for(i = 1;i = len;i+)scanf( %d,&num);ListInsert(&head2,i,num);PrintList(head2);Judge(head1,head2);return 0;测试用例及结果:

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服