数据结构_链表_多项式求导_C++实现
2011-09-14 13:12
671 查看
"head.h"
"main.cpp"
#include<iostream> #include<string> using namespace std; class NODE { public: NODE(); int coef; int exp; NODE *next; }; NODE::NODE() { coef=exp=0; next=NULL; } class DATA { public: DATA(); void GetPoly(); void Derivation(); void Print(); private: NODE *head,*p,*pre; int coef,exp; }; DATA::DATA() { pre=head=p=NULL; coef=exp=0; } void DATA::GetPoly() { cout<<"GetPoly Called !"<<endl<<endl; cout<<"Please Input polynomial :"<<endl<<endl; bool first=true; while(cin>>coef>>exp) { if(first) { head=new NODE; head->coef=coef; head->exp=exp; p=head; first=!first; } else { p->next=new NODE; p=p->next; p->coef=coef; p->exp=exp; } } cin.clear(); } void DATA::Derivation() { cout<<"Derivation Called !"<<endl<<endl; if(head==NULL) { cout<<"No Data !"<<endl<<endl; return; } else { pre=p=head; while(p!=NULL) { if(p->exp==0) { if(p==head) { head=head->next; delete p; pre=p=head; } else { pre->next=p->next; delete p; p=pre->next; } } else { p->coef*=p->exp; p->exp--; pre=p; p=p->next; } } } } void DATA::Print() { cout<<"Print Called !"<<endl<<endl; if(head==NULL) { cout<<"No Data !"<<endl<<endl; return; } p=head; cout<<p->coef; if(p->exp!=0) cout<<"x^"<<p->exp; p=p->next; while(p!=NULL) { cout<<"+"<<p->coef; if(p->exp!=0) cout<<"x^"<<p->exp; p=p->next; } cout<<endl<<endl<<endl; }
"main.cpp"
#include"head.h" int main() { DATA data; data.GetPoly(); data.Print(); data.Derivation(); data.Print(); system("pause"); return 0; }
相关文章推荐
- 【数据结构】C++链表实现一元多项式的加法
- 【c++版数据结构】之用带头节点的单链表实现一元多项式(C语言版)
- 数据结构_链表_稀疏多项式求值_C++实现
- 数据结构:C++链表类及一元多项式的实现时遇到的困难
- 数据结构_队列_用链表动态建立释放节点实现队列各种操作_C++实现
- C++实现数据结构四 单循环链表
- 简单数据结构之循环链表(C++实现)
- 严版数据结构 第29页 单链表 C++实现
- 几种简单的数据结构的C++实现,树,图,链表,环形队列,栈等---栈篇
- 数据结构-C++实现(一):数组链表
- 数据结构第二次上机实验【链表实现多项式的加法和乘法】
- 用c++实现数据结构中的单链表
- 经典算法与数据结构的c++实现——带头结点的单链表
- C++算法与数据结构学习笔记------单链表实现多项式
- 学习《数据结构》有感之以字符串形式输入链表实现多项式相加
- C++的标准模板库STL中实现的数据结构之链表std::list的分析与使用
- 数据结构 链表的lua实现 仿照C++中list 实现
- 数据结构(7)线性表之链表C++实现差集
- c++实现数据结构3.双链表
- 【C++数据结构】模版类实现双循环链表的基本操作