集合的交并差运算
int i;
cin>>i;
for(;i!=1 && i!=2;)
{cout<<"指令错误,请正确输入!"<<endl;
if(c==' ')
{}
else
{
p->data=c;
r->next=p;
r=p;
}
c=cin.get();
}
r->next=NULL;
cout<<"输入完毕,请按回车键返回主菜单!"<<endl;
getchar();
}
/*****************************输出***********************************/
getchar();
}
/****************************插入******************************************/
void jihe::ListInsert(int i)
{
char z;
do
{
cout<<"请输入插入位置以及数值:"<<endl;
}
if (p2==NULL)
{
s=(LinkList *)malloc(sizeof(LinkList));
s->data=p1->data;
s->next=L3->next;
L3->next=s;
}
p1=p1->next;
}
}
int xz()
{
cout<<"请选择集合:\n\t1、集合A \t2、集合B"<<endl;
{
p2=p2->next;
}
if ((p2!=NULL) && (p2->data==p1->data))
{
s=(LinkList *)malloc(sizeof(LinkList));
s->data=p1->data;
s->next=L3->next;
L3->next=s;
}
p1=p1->next;
4. 设计完成的软件要便于操作和使用
5. 设计完成后提交课程设计报告
四、进度安排
资料查阅与讨论(1天)
系统分析(2天)
系统的开发与测试(5天)
编写课程设计说明书和验收(2天)
五、评分标准
1. 根据平时上机考勤、表现和进度,教师将每天点名和检查
2. 根据课程设计完成情况,必须有可运行的软件。
3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。
}
/*********************************查找***************************************************/
void jihe::Search(int i)
{
char key;
cout<<"输入要查找的关键字:"<<endl;
cin>>key;
int d;
cin>>d;
int n;n=ListLength(i);
LinkList *p,*q;
int j;
char s;
while(d<1 || d>n)
{
cout<<"对不起!您输入的位置有误,请重新输入!"<<endl;
;
while(j<d-1)
{
p=p->next;
}
q=(LinkList *)malloc(sizeof(LinkList));
q->data=data;
q->next = p->next;
p->next=q;
cout<<"插入成功!";
}
cout<<"是否继续插入(y/n),并以回车键结束!"<<endl;
cin>>z;
}while(z=='y');
int d;
char data;
cin>>d;cin>>data;
LinkList *q,*p;
int j;int n;n=ListLength(i);
if(d<1 || d>n+1)
cout<<"操作失败!";
else
{
j=0;
p=a[i].L;
while(j<d-1)
{
p=p->next;
j++;
4. 根据答辩的情况,应能够以清晰的思路和准确、简练的语言叙述自己的设计和回答教师的提问
六、建议参考资料
1.《数据结构(C语言版)》严蔚敏、吴伟民主编清华大学出版社2004.11
2.《数据结构课程设计案例精编(用C/C++描述)》,李建学 等 编著,清华大学出版社 2007.2
3.《数据结构:用面向对象方法与C++语言描述》,殷人昆主编,清华大学出版社 2007
s->data=p1->data;
s->next=L3->next;
L3->next=s;
p1=p1->next;
}
p2=L2->next;
while (p2!=NULL)
{
p1=L1->next;
while((p1!=NULL)&&(p1->data!=p2->data))
p1=p1->next;
附录:
#include <stdio.h>
#include<iostream.h>
#include <stdlib.h>
typedef struct LNode//定义单链表结点类型
{
char data;
struct LNode *next;
} LinkList;
class jihe
{
int length;
}
}
/*****************************差集******************************************/
void jihe::ChaJi(int i)
{
LinkList *L1,*L2,*L3;
if(i==1)
{
L1=a[0].L;
L2=a[1].L;
LinkList *L;
public:
jihe()
{
L=(LinkList*)malloc(sizeof(LinkList));
length=0;
L->next=NULL;
}
~jihe()
{
LinkList *p;
while (L->next)
{
p = L->next;
L->next = p->next;
要求设计类(或类模板)来描述集合,包含必要的构造函数和析构函数,以及其他能够完成如下功能的成员函数:
输入、输出集合
查询集合中的元素
在集合中进行插入、删除元素
实现集合的并、交、差运算
并设计主函数测试该类。
三、设计要求及成果
1. 分析课程设计题目的要求
2. 写出详细设计说明
3. 编写程序代码,调试程序使其能正确运行
{
cout<<"请为集合输入数值(以回车键结束):";
char c;
LinkList *p,*r;
a[i].L=(LinkList*)malloc(sizeof(LinkList));
a[i].L->next=NULL;
r=a[i].L;
cin>>c;
while(c!='\n')
{
p=(LinkList*)malloc(sizeof(LinkList));
int low=1;ListLength(i);
int high=a[i].length;
int mid;
int j=0;
LinkList *p;
while(low<=high)
{
mid=(low+high)/2;
j=0;
p=a[i].L;//将指针指向链表的头结点首地址
while(j<mid)
{
p=p->next;
getchar();
return;
}
/*********************************删除****************************************************/
void jihe::ListDelete(int i)
{
char z;
do
{
cout<<"请输入要删除元素的位置:"<<endl;
free(p);
}
}
void ListCreat(int i);
void ListDisp(int i);
void BingJi();
void JiaoJi();
void ChaJi(int i);