顺序表单链表树图代码Word下载.docx
- 文档编号:18906772
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:25
- 大小:19.43KB
顺序表单链表树图代码Word下载.docx
《顺序表单链表树图代码Word下载.docx》由会员分享,可在线阅读,更多相关《顺序表单链表树图代码Word下载.docx(25页珍藏版)》请在冰豆网上搜索。
classSeqList
public:
SeqList(){Length=0;
}
SeqList(XXa[],intn);
~SeqList(){}
intLength(){returnlength;
XXGet(inti);
intLocate(XXx);
voidInsert(inti,XXx);
XXDelete(inti);
voidPrintList();
private:
XXdata[maxsize];
intlength;
//顺序表有参构造函数
SeqList<
XX>
:
SeqList(XXa[],intn)
if(n>
maxsize)throw"
参数非法"
;
for(inti=0;
i<
n;
i++)
data[i]=a[i];
length=n;
//按位查找
XXSeqList<
Get(inti)
if(i<
1&
&
i>
length)throw"
查找位置非法"
elsereturndata[i-1];
//按值查找
intSeqList<
Locate(XXx)
inti;
for(i=0;
length;
if(data[i].BianHao==x.BianHao)
returni+1;
return0;
//插入算法
voidSeqList<
Insert(inti,XXx)
intj;
if(length>
=maxsize)throw"
上溢"
1||i>
length+1)throw"
位置"
for(j=length;
j>
=i;
j--)
data[j]=data[j-1];
data[i-1]=x;
length++;
//删除算法
Delete(inti)
XXx;
if(length==0)throw"
下溢"
if(i<
length)throw"
x=data[i-1];
for(j=i;
j<
j++)
data[j-1]=data[j];
length--;
returnx;
//输出函数
PrintList()
cout<
<
data[i].BianHao<
setw(12)<
data[i].name<
data[i].Like<
setw(12)
<
data[i].Adress<
endl;
cout<
intmain()
XinXiX[5]={{1001,"
wangxin"
"
Game"
402"
},
{1002,"
zhaohuang"
Food"
524"
{1003,"
liuxing"
Create"
112"
{1004,"
huge"
Film"
119"
{1005,"
qiyue"
Book"
110"
}};
inti,j,k;
SeqList<
XinXi>
array(X,5);
"
请选择功能:
1输出列表"
2删除元素"
3插入元素"
4按位查找"
5按值查找"
do
{
cin>
>
i;
switch(i)
{
case1:
cout<
编号姓名爱好地址"
array.PrintList();
break;
case2:
请输入删除位置:
cin>
j;
array.Delete(j);
case3:
请输入要插入的信息:
XinXia;
a.BianHao>
a.name>
a.Like>
a.Adress;
请输入插入位置"
array.Insert(j,a);
case4:
XinXitemp;
请输入欲查找位置:
k;
查找内容如下:
temp=array.Get(k);
temp.BianHao<
temp.name<
temp.Like<
temp.Adress<
case5:
XinXix;
XinXib;
请输入所查找信息的编号:
x.BianHao;
所在位置为"
array.Locate(x)<
b=array.Get(array.Locate(x));
b.BianHao<
b.name<
b.Like<
b.Adress<
}
}while(i>
0);
return0;
2.单链表
classDataType>
structNode
XinXidata;
Node<
DataType>
*next;
*first;
classLinkList
LinkList();
LinkList(DataTypea[],intn);
~LinkList();
intLength();
DataTypeGet(inti);
intLocate(DataTypex);
voidInsert(inti,DataTypex);
DataTypeDelete(inti);
//单链表输出算法
voidLinkList<
*p;
p=first->
next;
while(p!
=NULL)
p->
data.BianHao<
data.name<
<
data.Like<
data.Adress<
p=p->
}
//求线性表长
intLinkList<
Length()
intcount=0;
count++;
returncount;
//线性表按位查找
DataTypeLinkList<
intcount=1;
=NULL&
count<
i)
}
if(p==0)throw"
elsereturnp->
data;
//线性表按值查找
Locate(DataTypex)
if(p->
data.BianHao==x.BianHao)
returncount;
//单链表插入算法
Insert(inti,DataTypex)
*s;
p=first;
intcount=0;
while(p!
i-1)
first;
if(p==NULL)throw"
else
s=newNode<
s->
data=x;
next=p->
p->
next=s;
//无参构造函数
LinkList<
LinkList()
first=newNode<
first->
next=NULL;
//头插法建立单链表
LinkList(DataTypea[],intn)
for(inti=0;
data=a[i];
next=first->
first->
}//头插法与尾插法只能选择其一,且头插法为倒序,尾插法为正序。
//尾插法建立单链表
/*template<
*r;
r=first;
r->
r=s;
r->
}*/
//单链表删除算法
*q;
XinXix;
if(p==NULL||p->
next==NULL)
throw"
q=p->
x=q->
next=q->
deleteq;
returnx;
//单链表析构函数
~LinkList()
while(first!
q=first;
first=first->
LinkList<
5按值查找"
6求其表长"
case2:
case6:
array.Length();
3.树
template<
classT>
structBiNode
Tdata;
BiNode<
T>
*lchild,*rchild;
classBiTree
{
public:
BiTree();
~BiTree();
voidPreOrder(BiNode<
*root);
voidInOrder(BiNode<
voidPostOrder(BiNode<
voidLeverOrder();
private:
*root;
*Creat(BiNode<
voidRelease(BiNode<
};
BiTree<
BiTree()
*root;
root=Creat(root);
//建立二叉链表
BiNode<
*BiTree<
Creat(BiNode<
*root)
charch;
cin>
ch;
if(ch=='
#'
)
root=NULL;
root=newBiNode<
root->
data=ch;
lchild=Creat(root->
lchild);
rchild=Creat(root->
rchild);
returnroot;
//二叉树前序遍历
voidBiTree<
PreOrder(BiNode<
*root)
if(root==NULL)return;
else{
root->
//输出data
PreOrder(root->
//二叉树中序遍历
InOrder(BiNode<
if(root==NULL)
return;
InOrder(root->
//二叉树后序遍历
PostOrder(BiNode<
PostOrder(root->
//二叉树层序遍历
LeverOrder()
intfront,rear;
*Q;
front=rear=-1;
if(root==NULL)return;
Q[++rear]=root;
while(front!
=rear)
q=Q[++front];
q->
//输出data
if(q->
lchild!
=NULL)
Q[++rear]=q->
lchild;
rchild!
rchild;
//析构函数
~BiTree()
Release(root);
:
Release(BiNode<
*root)
if(root!
Release(root->
deleteroot;
BiTree<
char>
Tree;
*Root;
1前序遍历"
2中序遍历"
3后序遍历"
4层序遍历"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 顺序 表单 链表树图 代码