有两道关于数据结构的题群里有人帮我解答下吗?

kevein1 2009-10-20 06:20:34
一、设计一个静态链表(或成为数组链表),该链表储存的数据类型为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这样的形式

谢谢~~~~~~
...全文
224 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
elegant87 2011-10-17
  • 打赏
  • 举报
回复
自己先写一下
这个不难的
AndyZhang 2011-10-17
  • 打赏
  • 举报
回复
感觉也不难,自己动手,丰衣足食

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧