有两道关于数据结构的题群里有人帮我解答下吗?
一、设计一个静态链表(或成为数组链表),该链表储存的数据类型为string,请实现以下的功能。
public:
List(); //构造函数
int size() const; //返回链表的长度
bool full() const; //返回链表是否已满
bool empty() const; //返回链表是否已空
void clear(); //清空链表
int retrieve( int position, string &x ) const; //获取链表第position位置的元素到x,成功返回0,否则返回-1
int replace( int position, const string &x ); //将链表第position位置的元素换为x,成功返回0,否则返回-1
int remove( int position, string &x ); //获取并删除链表第position位置的元素,成功返回0,否则返回-1
int insert( int position, const string &x ); //将元素x插入到链表第position位置,成功返回0,否则返回-1
protected:
int new_node(); //返回链表的数据载体(数组)的可用index,如果链表已满则返回-1
void delete_node( int index); //删除链表数据载体(数组)index位置的元素
int current_position( int index) const; //返回链表数据载体(数组)index位置的元素是链表的哪个位置,如果当前位置没有存放数据,则返回-1
int set_position( int position) const; //返回链表第position位置的数据所存放的数组index,如果不存在position位置,则返回-1
要求:
在实现要求的结构的基础上,需在main函数中编写下面所述的简单测试程序,请使用屏幕输出,输入部分直接指定即可。
(1)按输入序列:Jan、Feb、Mar、App、May 建立初始链表。
(2)在Feb 之前,May 之后,先后插入Jun、Ocb。
(3)先后删除Mar 和 Jan 。
(4)在App之前插入Dec。
每一步完成后输出链表的状态,以及head、available、last_used的状态。链表的状态请按照position:content[空格]index输出,三个变量请按照head:??、available:??、以及last_used:??输出。每一步完成输出以后,请打印一个空行。
每一步的输出应该是这样的(不代表正确答案,只说明输出格式):
0:XXX[空格]2
1:YYY[空格]4
2:TTT[空格]5
head:2
avaibale:3
last_used:1
二、设计一个队列,要求用二个顺序存储结构的栈,通过这二个栈的相关运算实现队列的以下功能。
Queue();//构造函数
bool empty();//返回队列是否已空
bool full();//返回队列是否已满
int serve();//出队列,成功返回0,否则返回-1
int append(const string &item); //item进队列,成功返回0,否则返回-1
int retrieve(string &item) const; //将队列头的值赋给item,成功返回0,否则返回-1
要求:
在实现要求的结构的基础上,需在main函数中编写下面所述的简单测试程序,请使用屏幕输出,输入部分直接指定即可。
入队列:Jan、Feb、Mar、App、May,出队列二次,再入队列Jun、Ocb,再出队列二次,最后将Dec入队列。最后将队列中状态输出。输出中队列的元素之间请用空格隔开。
例如XXX[空格]YYY[空格]ZZZ这样的形式
谢谢~~~~~~