数据结构作业

来源:互联网 发布:星状网络数据链通信机 编辑:程序博客网 时间:2024/04/29 15:00

Exercises 2.2

E2 (b):

Error_code copy_stack(Stack &dest,Stack &source)

{

Erroe_code detected=success;

Stack temp;

Stack_entry item;

While (detected==success&&!source.empty()}{

Detected=source.top(item);

Detected=source.pop();

if(detected==success)detected=temp.push(item);

}

While(detected==succes&&!temp.empty()}{

detected=temp.top(item);

detected=temp.pop();

if(detected==success)detected=source.push(item);

if(detected==success)detected=dest.push(item);

}

return detected;

}

 

Exercises 3.3

E7

The class definition for this queue implementation is as follows.

const int maxqueue=10;

class Queue{

Public:

Queue();

Bool empty()const;

Error_code serve();

Error_code append(const Queue_entry &item);

Error_code retrieve(Queue_entry&item)const;

Protected:

int front ,rear;

Queue_entry entry[maxqueue];

bool is_empty;

};

The method implementations follow.

Queue::Queue()

{

rear=-1;

front=0;

is_empty=true;

}

Bool Queue::empty()const

{

return is_empty;

}

Error_code Queue::append(const Queue_entry &item)

{

if(!empty()&&(rear+1)%maxqueue==front)return overflow;

is_ empty=false;

Rear=((rear+1)==maxqueue)?0:(rear+1);

Entry[rear]=item;

return success;

}

Error_code Queue;:retrieve(Queue_entry&item)const

{

if((empty())return underflow;

item=entry[front];

Return success;

}