工大数据结构第二章作业(5)

2019-04-09 14:22

//i相当于指数,数组值就是相应指数的系数 receive[i] = 0.0; }

//指数及数组下标 int expByIndex = 0; //顺次扫描A while (a != NULL)

{//A不空,顺次扫描B while (b != NULL) {

//两项做乘法之后的指数和

expByIndex = a->exponent + b->exponent;

//系数之间做乘,结果保存到对应的指数下(下标), receive[expByIndex] += (a->coefficient) * (b->coefficient); b = b->next; }

b = LB->next; a = a->next; }// end of while

//数组保存的是全部项,两两分别乘法之后的结果,保存在对应的下标(数组位置) for (int i = 0; i < maxNum + 1; i++) { // 0?

if (isZeroByDouble(receive[i])) {//not do sth } else

{ //生成结点

ptr = (Polynomial)malloc(sizeof(Node)); //接到 LC 表 c->next = ptr;

c = c->next; //赋值

c->coefficient =receive[i]; c->exponent = i;

}// end of if }// end of for

c->next = NULL; }

//链表销毁

void destroyList(Polynomial *L) {

Polynomial ptr = NULL; while (*L != NULL) {

ptr = (*L)->next; free(*L); *L = ptr;

} //

*L = NULL;

cout<<\销毁完毕\ }

#endif

八、试编写一个整数进制转换的通用函数convert(int num, STACK S, int n),要求将整数m转换为n进制数,n进制数的各位依次存放在栈S中。并在主函数中进行测试。 要求:1、定义栈以及栈的型。

2、定义栈的各种操作。 3、实现函数convert。

4、在main函数中,通过调用函数convert将num的n进制数存放到一个栈中,并通过出栈的方法输出该n进制数 //栈的数组实现

//此处将栈底规定在数组的底部,即让maxlength-1指向栈底的第一个元素 #include using namespace std;

#define maxlength 100//栈的容量 typedef int Elementtype;

struct STACK//定义整型线性数组栈 { int top; Elementtype elements[maxlength]; };

bool isEmpty(STACK S)//栈是否为空 { if(S.top>=maxlength) return true; else return false; }

void makeNull(STACK &S)//栈置空 { S.top = maxlength; }

Elementtype top(STACK S)//返回栈顶元素 { if(isEmpty(S)) cout<<\栈为空!\ else return(S.elements[S.top]); }

void pop(STACK &S)//出栈,删除栈顶元素 { if(isEmpty(S)) cout<<\栈为空!\ else S.top++; }

void push(STACK &S, Elementtype x)//进栈 { if(S.top == 0) cout<<\栈已满!\ else { --S.top; S.elements[S.top] = x; } }

void convert(int num,STACK &S,int n)//进制转换函数 { while(num!=0) { push(S,num%n); num/=n; } }

void print(STACK S)//输出转后的结果 { while(!isEmpty(S)) { cout<

cout<

void main() { STACK S; makeNull(S); int num = 1024; int n = 2; cout<<\转化前的十进制数为:\ cout<<\转化后的\进制数为:\ convert(num,S,n); print(S); }

九、设有一个循环队列Queue,只有头指针front,不设尾指针,另设一个含有元素个数的计数器count,试写出相应的判断队列空、判断队列满、出队算法和入队算法。 要求:

1、定义相应的循环队列的型(只有头指针,没有尾指针,但有一个元素个数的计数器); 2、定义该队列的四个算法:判断队列空、判断队列满、出队算法和入队算法; 3、在main函数验证算法的正确性。

//没有尾指针的队列,但有一个计数器,所以尾指针rear可以用头指针表示出来 #include using namespace std;

#define maxlength 20 typedef int elementtype;

struct QUEUE {

elementtype elements[maxlength]; int front;

int count;//元素个数计数器:rear=(front+count-1)%maxlength };

int addone( int i )//指针后移 { return ((i+1)%maxlength); }

bool isEmpty(QUEUE Q)//队列是否为空 { if (Q.count==0) return true ;

else return false ; }

bool isFull(QUEUE Q)//队列是否已满 {

if (Q.count==maxlength) return true; else

return false; }

elementtype front(QUEUE Q)//返回队头元素 { if (isEmpty(Q)) return NULL ; else return(Q.elements[Q.front]); }

void enQueue(elementtype x,QUEUE &Q)//队列后插入一个元素,入队 { if (isFull(Q)) cout<<\队列已满\ else { Q.count++; Q.elements[(Q.front+Q.count-1)%maxlength]=x; } }

void deQueue (QUEUE &Q)//删除队头元素,出队 { if(isEmpty(Q)) cout<<\队列为空\ else { Q.front=addone(Q.front); Q.count--; } }

void print(QUEUE Q) {


工大数据结构第二章作业(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中国宠物食品市场调查分析报告

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

马上注册会员

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