1、
学 号 09710213
数据结构课程设计
设计说明书
文章编辑
起止日期: 2011年 1月 4 日 至 2011 年 1月7日
学生姓名
张颜南
班级
09计算机2班
成绩
指导教师(签字)
邢振祥
电子与信息工程系
2011年 1 月 7 日
天津城市建设学院
课程设计任务书
2010—2011学年第1学期
电子与信息工程 系 计算机 专业 09级2 班级
课程设计名称: 数据结构课程设计
设计题目: 文章编
2、辑
完成期限:自 2011 年 1 月 4 日至 2011 年 1 月 7 日共 1 周
设计依据、要求及主要内容(可另加附页):
一、设计目的
熟悉各种数据结构和运算,会使用数据结构的基本操作解决一些实际问题。
二、设计要求
(1)重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;
(2)按照课程设计的题目要求,独立地完成各项任务,严禁抄袭;凡发现抄袭,抄袭者与被抄袭者皆以零分计入本课程设计成绩。凡发现实验报告或源程序雷同,涉及的全部人员皆以零分计入本课程设计成
3、绩;
(3)学生在接受设计任务后,首先要按设计任务书的要求编写设计进程表;
(4)认真编写课程设计报告。
三、设计内容
二叉树
四、参考文献
1.王红梅.数据结构.清华大学出版社
2.王红梅.数据结构学习辅导与实验指导.清华大学出版社
3.严蔚敏,吴伟民.数据结构(C语言版).清华大学出版社
//LinkList.h 声明类LinkList
#ifndef LinkList_H
#define LinkList_H
template
struct Node
{
T data;
Node *next; //此处也可以省略
4、
};
template
class LinkList
{
public:
LinkList( ); //建立只有头结点的空链表
LinkList(T a[ ], int n); //建立有n个元素的单链表
~LinkList(); //析构函数
void PrintList( ); //遍历单链表,按序号依次输出各元素
Node * Locate(T x); //查找值为x的元素,并返回地址
int Length(); //求单链
5、表长度
void Reverse(); //单链表逆置
private:
Node *first; //单链表的头指针
};
#endif
//LinkList.cpp
#include "LinkList.h"
/*
*前置条件:单链表不存在
*输 入:无
*功 能:构建一个单链表
*输 出:无
*后置条件:构建一个单链表
*/
template
LinkList:: LinkList( )
{
first=new Node; first->next=N
6、ULL;
}
/*
*前置条件:单链表不存在
*输 入:顺序表信息的数组形式a[],单链表长度n
*功 能:将数组a[]中元素建为长度为n的单链表
*输 出:无
*后置条件:构建一个单链表
*/
template
LinkList:: LinkList(T a[ ], int n)
{
first=new Node; //生成头结点
Node *r,*s;
r=first; //尾指针初始化
for (int i=0; i7、
s=new Node; s->data=a[i]; //为每个数组元素建立一个结点
r->next=s; r=s; //插入到终端结点之后
}
r->next=NULL; //单链表建立完毕,将终端结点的指针域置空
}
/*
*前置条件:无
*输 入:无
*功 能:无
*输 出:无
*后置条件:无
*/
template
LinkList:: ~LinkList()
{
}
/*
*前置条件:单链表存在
*输 入:无
*功
8、 能:单链表遍历
*输 出:输出所有元素
*后置条件:单链表不变
*/
template
void LinkList::PrintList( )
{
Node *p;
p=first->next;
while (p)
{
cout<data<next;
}
}
/*
*前置条件:单链表存在
*输 入:无
*功 能:求单链表的长度
*输 出:输出单链表的长度
*后置条件:单链表不变
*/
template
i
9、nt LinkList::Length( )
{
}
/*
*前置条件:单链表存在
*输 入:无
*功 能:单链表逆置
*输 出:无
*后置条件:单链表顺序逆置
*/
template
void LinkList::Reverse( )
{
}
/*
*前置条件:单链表存在
*输 入:值 x
*功 能:查找值为x的元素
*输 出:如果查找成功,输出元素的位置,否则输出空
*后置条件:单链表不变
*/
template
Node
10、 * LinkList::Locate(T x)
{
}
//LinkListMain.cpp
#include //引用输入输出流库函数的头文件
#include "LinkList.cpp" //引用单链表的类
void main( )
{
int r[100],n,i,x;
cout<<"请输入线性表中元素的个数!"<>n;
cout<<"请输入线性表中每个元素!"<11、<>r[i];
}
LinkList b(r,n); //根据数组创建单链表
cout<<"单链表b为:"<12、n"<>s;
switch(s)
{
case '1':
b.Reverse();
break;
case '2':
cout<<"单链表b为:"<>x;
if (!b.Locate(x))
cout<<"无此元素";
else
cout<<"查找成功:"<