数据结构 链表应用 一元多项式运算(2)

2019-01-26 14:53

链表实现一元多项式运算

C.Unit(); if(choice != C.Poly.length()) //当有项消去时输出该部分 { cout<<\ cout<>choice; cout<

void main() //主函数调用部分 { Cinhelp(); }

共7页

6

链表实现一元多项式运算

一元多项式运算功能 输入截图:

一元多项式运算功能 结果输出截图:

共7页

7

链表实现一元多项式运算

//以部分为头文件SimpleLinkList.h部分,用该部分替换顶部的#include\应用\\数据结构\\DataStruct\\SimpleLinkList.h\ 可实现一元多项式功能

#include

//结点类模板

template struct node { ET data; //结点数据域,存储该结点的数据部分 node* next; //结点指针域,指示下一个节点的位置 node(){ next = NULL; } //无参数结点构造函数,用于未给定参数时结点的初始化 node(ET dat, node* link){ data = dat; next = link; } //给定参数结点构造函数,构造给定数据和指针的结点 };

//简单线性链表类 Pag 52 template class SimpleLinkList { protected: int count; //用于计数表元素个数,即表长 node* head; //顺序表起始位置指针 public: SimpleLinkList(){ count=0; head = new node; } //简单线性链表构造函数 ~SimpleLinkList(){ Clear(); delete head; } //简单线性链表析构函数

//简单线性链表相关操作 bool Empty(){ return count == 0; } //表是否为空 void Clear(); //表清空,置元素个数为0 void Show(); //输出现实表中现有的所有元素 node* GetPtr(int postion); //获取指向第pos个位置节点的指针

共7页

8

链表实现一元多项式运算

void SetElem(ET &e); //向表中末位写入元素e,元素总数加一 void ReSetElem(int pos, ET &e); //重置表中第pos个位置元素的数据部分为e,元素总数不变 void Insert(int pos, ET &e); //向表中第pos个位置插入新的结点元素,元素总数加一 void GetElem(int pos, ET &e); //从表中获取第pos元素,写入e中,由e输出 void DelElem(int pos); //删除表中第pos个位置的元素.元素减一 void operator=(SimpleLinkList& cop); //赋值符重载函数,实现简单线性链表的复制功能 void SUB(SimpleLinkList &A, SimpleLinkList &B); //实现表相减,将仅存在于A中的元素写入当前链表 void ADD(SimpleLinkList &A, SimpleLinkList &B); //实现链表相加,将表A 表B中的元素依次写入当前链表 void Seprate(); //奇偶分离函数,使得所有奇数均排列在偶数前 void Sort(); //对链表中的元素进行排序 void Reserve(); //对线性链表逆序 void ResHelp(int &tmp); //线性链表逆序辅助函数 void CinHelp(); //提示输入函数,用于实现键盘输入交互式操作 };

template

void SimpleLinkList::Clear() { while(count) DelElem(1); //当表中有元素时 }

template

void SimpleLinkList::Show() { int cot = count; ET tmp; node* shw = head; //指向头指针的第一个后继 cout<0) //当表中有元素时 { shw = shw->next; //每输出一位向后移动一位 tmp = shw->data; cout<

共7页

9

链表实现一元多项式运算

cot --; //计数元素总数减一 } cout<

template

node* SimpleLinkList::GetPtr(int postion) { int pos = postion; node* ElemPtr; if(pos==0) return head; else if(pos<1 || pos>count+1) cout<next; while(pos>1) { ElemPtr = ElemPtr->next; pos--;} //不断指向下一个结点,头指针所在位置为零 } return ElemPtr; }

template

void SimpleLinkList::SetElem(ET &e) { node* prt = GetPtr(count); //获取指向最后一个结点的指针 prt->next = new node; //将最后一个节点的后继指向新的结点 count++; //置入表中不存在的元素,元素总数加一 prt->next->data = e; //将e写入后继结点的数据部分 }

template

void SimpleLinkList::ReSetElem(int pos, ET &e) { if(pos<1 || pos>count) cout<data = e; //重置表中元素,元素总数不变 }

template

void SimpleLinkList::Insert(int pos, ET &e) { //在第pos个位置插入一个新结点 if(pos<1 || pos>count+1) cout<

共7页

10


数据结构 链表应用 一元多项式运算(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:家庭教育分析论文:家庭教育与幼儿创造力的培养

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: