2019数据结构C++第二章第5讲 .pptx
文本预览下载声明
第二章 线性表;练习;前插法建立单链表;template class T
void inputFront (T endTag, ListT L) {
LinkNodeT *newNode, *newF; E val;
newF = new LinkNodeT;
L.setFirst (newF); //first-link默认值为NULL
cin val;
while (val != endTag) {
newNode = new LinkNodeT(val);
newNode-link = newF-link; //插在表前端
newF-link = newNode;
cin val;
}
}; ;后插法建立单链表;6;有了基本的操作,如何解决一个具体的问题?;How to solve a new program? It is a simple method.;程序model;多项式链表的相加(1.表示,2.计算);多项式链表的相加(1.表示,2.计算);多项式(polynomial)类的链表定义;13;14;15;16;17;18;19;当pa或pb指针中有一个为NULL,则把另一个链表的剩余部分加入到C链。
void Add(Polynomal A, Polynomal B, Polynomal C) {
//友元函数:两个带表头结点的按升幂排列的
//多项式链表的头指针分别是 A.first 和 B.first,
//返回的是结果多项式链表 C.
Term *pa, *pb, *pc, *p; float temp;
pc = C.first; //结果链尾指针
pa = A.first-link; //A链检测指针
pb = B.first-link; //B链检测指针
while (pa != NULL pb != NULL) ; if (pa-exp == pb-exp) { //对应项指数相等
temp = pa-coef + pb-coef; if ( fabs(temp) 0.001)
pc = pc-InsertAfter(temp, pa-exp);
pa = pa-link; pb = pb-link;
}
else if (pa-exp pb-exp) { //pa指数小
pc = pc-InsertAfter(pa-coef, pa-exp);
pa = pa-link; } else { //pb指数小
pc = pc-InsertAfter(pb-coef, pb-exp);
pb = pb-link; } ; p = (pa != NULL)? pa : pb; //p指示剩余链
while (p != NULL) {
pc = pc-InsertAfter(p-coef, p-exp); //两步 赋值
p = p-link;
}
};; p = (pa != NULL)? pa : pb; //p指示剩余链
while (p != NULL) {
InsertAfter(pc, p-coef, p-exp);
pc=pc-next;
p = p-link;
}
};;最后,修改多项式(polynomial)类的链表定义,添加修改的函数;循环链表的示例
带表头结点的循环链表 ;循环链表类的定义;template class T //链表类定义
class CircList : public LinearListT {
private:
CircLinkNodeT *first, *last; //头指针, 尾指针
public:
CircList(const T x); //构造函数
CircList(CircListT L); //复制构造函数
~CircList(); //析构函数
int Length() con
显示全部