文档详情

数据结构 链式字符串.doc

发布:2015-11-02约字共19页下载文档
文本预览下载声明
#includeiostream.h //多用链表结点 templateclass ET struct DblNode { ET data; //结点数据域,存储该结点的数据部分 DblNodeET* next; //结点指针域,指示下一个节点的位置 DblNodeET* back; //指向结点的前驱 DblNode(){ next = NULL; back = NULL; } //无参数结点构造函数,用于未给定参数时结点的初始化 }; //==================================================================================================================================== // // 链表类 部分 // //==================================================================================================================================== templateclass ET class LinkList { protected: ET dataTmp; //用于临时存取数据,供成员函数使用 int count, cTmp; //count用于计数表元素个数,即表长; cTmp用于临时计数用 DblNodeET *head, *tail, *pTmp; //*head记录表头的位置; *tail记录表尾的位置; *pTmp记录每次操作结点的指针位置 public: LinkList(){ count=cTmp=0; head = tail = pTmp = NULL;} //链表构造函数 ~LinkList(){ Clear();} //链表析构函数 //链表相关操作 int Length(){ return count;} //用于获取当前标的长度 void Clear(){ while(count) DelHead(); } //表清空 void Show(); //输出表中现有的所有元素 void ReShow(); //逆序输出表中现有的所有元素 DblNodeET* GetPosP(int postion); //获取指向第postion个位置结点的指针 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 = (LinkListET cop); //赋值符重载函数,实现链表的复制功能 void SUB(LinkListET A, LinkListET B); //实现链表相减,将仅存在于A中的元素写入当前链表 void ADD(LinkListET A, LinkListET B); //实现链表相加,将表A 表B中的元素依次写入当前链表 void Seprate(); //奇偶分离函数,使得所有奇数均排列在偶数前 void Sort(); //对链表中的元素进行排序 void KillDouble(); //对链表中的元素进行排序去重 void CinHelp(); //提示输入函数,用于实现键盘输入交互式操作 }; templateclass ET void LinkListET::Show() { cTmp = count
显示全部
相似文档