数据结构 矩阵操作
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
运行时的显示界面,可选择相应操作
#include
//多用链表结点
template
struct DblNode
{
ET data; //结点数据域,存储该结点的数据部分
DblNode
DblNode
DblNode(){ next = NULL; back = NULL; } //无参数结点构造函数,用于未给定参数时结点的初始化
};
//=========================================================================== =========================================================
//
// 链表类部分
//
//=========================================================================== =========================================================
template
class LinkList
{
protected:
ET dataTmp;
//用于临时存取数据,供成员函数使用
int count, cTmp; //count用于计数表元素个数,即表长;cTmp用于临时计数用
DblNode
public:
LinkList(){ count=cTmp=0; head = tail = pTmp = NULL;}
//链表构造函数
~LinkList(){ Clear();} //链表析构函数//链表相关操作
int Length(){ return count;} //用于获取当前标的长度
void Clear(){ while(count) DelHead(); } //表清空
void Show(); //输出表中现有的所有元素
void ReShow(); //逆序输出表中现有的所有元素
DblNode
void HeadInsert(ET &e); //从表头插入元素
void TailInsert(ET &e); //从表尾插入元素
void Insert(int position, ET &e); //向表中第postion个位置插入新的结点元素,元素总数加一
void ReTailInsert(int position, ET &e); //重置表中第cTmp个位置元素的数据部分为e,元素总数不变
void GetElem(int position, ET &e); //从表中获取第cTmp元素,写入e中,由e输出
void DelHead(); //删除表头
void DelTail(); //删除表尾
void DelElem(int position); //删除表中第cTmp个位置的元素.元素减一
void operator = (LinkList
void SUB(LinkList
//实现链表相减,将仅存在于A中的元素写入当前链表
void ADD(LinkList
//实现链表相加,将表A 表B中的元素依次写入当前链表
void Seprate(); //奇偶分离函数,使得所有奇数均排列在偶数前
void Sort(); //对链表中的元素进行排序
void KillDouble(); //对链表中的元素进行排序去重
void CinHelp(); //提示输入函数,用于实现键盘输入交互式操作
};
template
void LinkList
{
cTmp = count;
pTmp = head; //指向头指针的第一个后继
cout< while(cTmp>0 && count>0) //当表中有元素时 { dataTmp = pTmp->data; cout< cTmp --; //计数元素总数减一 pTmp = pTmp->next; //每输出一位向后移动一位 } cout< } template void LinkList { cTmp = count; pTmp = tail; //指向头指针的第一个后继 cout< while(cTmp>0 && count>0) //当表中有元素时 { dataTmp = pTmp->data; cout< cTmp --; //计数元素总数减一 pTmp = pTmp->back; //每输出一位向后移动一位 } cout< } template DblNode { cTmp = postion;