队列:受操作约束的线性表,插入删除在两头
有三个分量
当加入一个元素的时候,rear加1,当删除一个元素的时候,Front加一。一开始front是-1,front指向头一个元素在前面一个元素。rear指向最后一个元素的位置
1.删除一个job
2.增加一个元素
现在队列后面已经满了,要看前面的应该怎么添加。
所以有了循环队列
加入一个元素,rear向前挪一个。
删除一个元素,front往前挪一个。
这时候就是慢的
数量不一样
tag可以看到最后一个元素是插入还是删除。
可以采取第二种方法。不放满。
用求余函数
链表的结点结构
链表的指针,分别指向链表的头和尾
当front不指向任何东西,等于none的时候就是空的
P1 P2是结构的指针
一开始的时候,front指向temp,这是在头节点前面的一个节点。接手之后要指向真正的头节点
练习题:多项式的乘法
大框架
PP也是结构的指针 全都是指针
读多项式应该怎么做?
先看一下多项式的形式是什么样子的
如然后
读入多项式的大框架
先读4,指数递降读入。构造节点把他插入链表。
如果Rear是NULL的时候,是刚开始的第一个节点。这个时候要申请这个节点,然后再把NULL指向这个节点。如果Rear值不为NULL,因为从第二项开始Rear值不为NULL 了,直接把新的节点插入Rear节点后面。attach必须要判断Rear是不是NULL
第二个比较简单,不用判别rear时不时null,attach函数比较简单。
申请空节点的方法
最后的结果是什么
把中间的删掉。
rear先指向一个空节点
1.这是对t2的每一项进行处理。
2.
两个多项式相乘的大框架
1.先构造一个初始多项式。
2.当前结果知道了怎么插进去
3.最后结果怎么处理
1.
2.
先把指数和系数算出来。找到要插入的点在哪里。
while循环,比较当前rear要 指向的下一个节点的是不是要比当前的大。
判别指数是不是一样
判断加上之后是不是等于0,不是就插进去
怎么返回