(三)概要设计。
在做第一题集合运算时,我通过有序单链表实现集合的交运算,并运算,差运算。首先,我要对集合中的元素用有序单链表进行存储。我首先通过直接插入排序对数组进行排序,使数组升序排列(因为我使用尾插法建立有序链表)。
在计算交集时,只需要查找单链表a和单链表b中相同的元素并保留在单链表a中。由于用有序单链表表示集合,所以判断元素是否在b中不需要遍历表b,而是从上次搜索到的位置开始,若搜索过程中,遇到一个其值比该元素大的结点,便可以断定该元素不在该链表中,为此需设两指针p , q分别指向当前被比较的两个结点,会出现以下三种情况:
1若p->data>q->data,说明还未找到,需在表b中继续查找。
2 若p->datadata,说明b中无此值,处理表a中的下一个结点。
3 若p->data==q->data,说明找到了公共元素。
同理,求并运算时,只需对单链表b中的每一个元素x,在单链表a中进行查找,若存在和x不相同的元素,则将该结点插入单链表a中。求差运算时,只需对单链表b中的每个元素x,在单链表a中查找,若存在与x相同的结点,则将该结点从单链表a中删除。
四)详细设计。
#ifndef linklist_h
#define linklist_h
template
struct node
datatype data; node*next; }
template
class linklist
public:
linklist();linklist(datatype a,int n);
~linklist();void printlist();node* first;
#endif
#include
using namespace std;
#include""
template
linklist::linklist()
first=new node; first->next=null; }
template
linklist::linklist(datatype a,int n)
node*r,*s;
first=new node; r=first;
for(int i=0;i
r->next=null;
template
linklist::~linklist()
node*q=null;
while(first!=null)
template
void linklist::printlist()
node *p=first->next;
while(p!=null)
cout<}
template
/要查找单链表a和单链表b中相同的元素并保留在单链表a中。
void jiaoji(node *a,node *b) /交运算。
node *pre,*p,*q;
pre=a;p=a->next;q=b->next;
while(p!=null&&q!=null)
else if(p->data>q->data) q=q->next;else
template
/对单链表b中的每个元素x,在单链表a中查找,若存在与x相同的结点,则将该结点从单链表a中删除。
void chaji(node *a,node *b)//a-b
node *pre, *p, *q;
pre=a;p=a->next; q=b->next;
while(p!=null &&q!=null)
//始终保证p=pre->next;
if(p->data>q->data) q=q->next;
if(p->data==q->data)
pre->next=p->next; delete p; p=pre->next; q=q->next; }
template
/对单链表b中的每一个元素x,在单链表a中进行查找,若存在和x不相同的元素,则将该结点插入单链表a中。
void bingji(node *a,node *b)
node *pre,*p,*q;
node *s=null;
pre=a;p=a->next;q=b->next;
while(p!=null&&q!=null)
else if(p->data==q->data)
void insertsort(char r,int n)
for(int i=1;i
r[j+1]=r[n];
#include
#include
#include
using namespace std;
#include ""
void main()
cout<<"注意,输入的字符串必须为小写字母,且不出现重复字母!" cout<<"请输入字符串:" linklistl1(r1,k1+1);/尾插法 linklistl2(r2,k2+1); cout<<"输出:" cout<<"1.交集。" if(choice>0&&choice<4) switch(choice) 一)设计题目。 课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 2008 年6月 2日至 2008 年 6月 6 日。目录。1 问题描述 2 1.1 题目内容 2 1.2 基本要求 2 1.3 测试数据 2 2... 数据结构 课程设计。实验报告。学院 信息工程学院。班级 姓名 学号 指导老师 题目2 一元多项式的计算。1 实验目的。1 掌握链表的灵活运用 2 学习链表初始化和建立一个新的链表 3 知道怎样去实现链表删除结点操作与插入结点 4 理解链表的基本操作 包括数据域数据的相加 并能灵活运用。2 实验内容。... 班级 信计 1102 姓名 李娜娜。学号 1108060209 设计日期 2013.07.15 西安科技大学计算机学院 1.实验题目 编制一个演绎扫雷游戏的程序。2.问题描述。做一个n x m的扫雷游戏,每个方格包含两种状态 关闭 closed 和打开 opened 初始化时每个方格都是关闭的,一个...数据结构课程设计
数据结构课程设计
数据结构课程设计