数据结构程序Word文档下载推荐.docx
《数据结构程序Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据结构程序Word文档下载推荐.docx(31页珍藏版)》请在冰豆网上搜索。
endl<
"
1.生成线性表."
2.显示线性表."
3.检索元素."
4.设置元素值."
5.删除元素."
6.插入元素."
cout<
7.退出"
选择功能(1~7):
"
cin>
>
c;
switch(c)
{
case'
1'
:
cout<
输入e(e=0时退出):
cin>
e;
while(e!
=0)
{
la.Insert(la.Length()+1,e);
cin>
}
break;
2'
lb=la;
lb.Traverse(Write<
);
3'
cout<
输入元素位置:
cin>
position;
if(la.GetElem(position,e)==NOT_PRESENT)
cout<
元素不存储."
<
endl;
else
元素:
e<
break;
4'
输入位置:
输入元素值:
if(la.SetElem(position,e)==RANGE_ERROR)
位置范围错."
设置成功."
5'
if(la.Delete(position,e)==RANGE_ERROR)
被删除元素值:
6'
if(la.Insert(position,e)==RANGE_ERROR)
成功:
}
}
system("
PAUSE"
//调用库函数system()
return0;
//返回值0,返回操作系统
}
test_simple_lk_list
//实用程序软件包
simple_lk_list.h"
//简单线性链表类
SimpleLinkList<
system("
//调用库函数system()
return0;
//返回值0,返回操作系统
实验二
顺序栈test_sq_stack
sq_stack.h"
//顺序栈类
SqStack<
sa,sb;
doublex;
1.生成栈."
2.显示栈."
3.入栈."
4.出栈."
5.取栈顶."
6.退出"
选择功能(1~6):
输入e(e=0时退出)"
while(x!
x;
if(x!
sa.Push(x);
case'
sb=sa;
sb.Traverse(Write<
case'
sa.Push(x);
sa.Pop(x);
栈顶元素值为"
x<
."
sa.Top(x);
链队列test_lk_queue
lk_queue.h"
//链队列类
LinkQueue<
qa,qb;
1.生成队列."
2.显示队列."
3.入队列."
4.出队列."
5.取队列头."
qa.InQueue(x);
qb=qa;
qb.Traverse(Write<
qa.InQueue(x);
qa.OutQueue(x);
队头元素值为"
qa.GetHead(x);
实验三
KMP算法test_kmp_match
kmp_match.h"
//KMP算法
{//测式KMP字符串模式匹配算法
StringT("
thisisastring"
StringP("
is"
KMPIndex(T,P)<
KMPIndex(T,P,3)<
KMPIndex(T,P,6)<
T=P;
稀疏矩阵三元组顺序表test_tri_sparse_matrix
//实用程序软件包
tri_sparse_matrix.h"
//稀疏矩阵的三元组顺序表
try//用try封装可能出现异常的代码
constintn=5;
TriSparseMatrix<
int>
a(n,n);
//定义一个n行n列稀疏矩阵
intb[n][n]={
1,0,3,0,0,
4,0,6,0,0,
0,0,8,9,0,
0,0,0,1,12,
1,0,0,3,1
};
inti,j,v;
//工作变量
//设置稀疏矩阵a的元素值
for(i=1;
i<
=n;
i++)
{//行
for(j=1;
j<
j++)
{//列
a.SetElem(i,j,b[i-1][j-1]);
//设置元素值
}
c(a);
//复制构造函数
c=a;
//赋值运算符重载
//显示稀疏矩阵c
=c.GetRows();
=c.GetCols();
{//列
c.GetElem(i,j,v);
//求元素值
v<
\t"
//显示元素值
catch(Errorerr)//捕捉并处理异常
err.Show();
//显示异常信息
稀疏矩阵十字链表test_cro_sparse_matrix
cro_sparse_matrix.h"
CLkSparseMatrix<
实验四:
先序线索二叉树test_pre_thread_binary_tree
//实用程序软件包
pre_thread_binary_tree.h"
//先序索化二叉树类
try//用try封装可能出现异常的代码
intpre[]={1,2,4,5,3,7,8};
//先序序列
intin[]={4,2,5,1,7,3,8};
//中序序列
intn=7;
//结点个数
BinaryTree<
preInBt;
preInBt=CreateBinaryTree(pre,in,n);
//构造二叉树
由pre[]={1,2,4,5,3,7,8},in[]={4,2,5,1,7,3,8}构造二叉树:
DisplayBTWithTreeShape<
(preInBt);
//调用库函数system()
先序索化后的线索二叉树:
PreThreadBinTree<
thrBt(preInBt);
(thrBt);
先序遍历:
thrBt.PreOrder(Write<
cout<
endl;
bt(thrBt);
复制构造线索二叉树:
(bt);
bt.PreOrder(Write<
bt=thrBt;
赋值语句重载构造线索二叉树:
catch(Errorerr)//捕捉并处理异常
//显示异常信息
//调用库函数system()
//返回值0,返回操作系统
中序线索二叉树test_in_thread_binary_tree
in_thread_binary_tree.h"
//中序线索二叉树类
中序索化后的线索二叉树:
InThreadBinTree<
中序遍历:
thrBt.InOrder(Write<
InThr