您的位置:首页 > 其它

算法不会,尚能饭否之双向循环链表

2011-04-12 16:04 281 查看
嗨,朋友们,你懂得,写篇博文不容易!

这次写的这个篇博文是关于双向循环链表。呵呵,双向链表,只要你知道其中任何一个节点的地址,就可以遍历表中其它任何一个节点。不错吧。不错的数据结构,没事,自己写了一个,基本功能是实现了,但是有点马虎,如果需要,可以在我的基础上修改,是吧,伙计。互相进步!废话少说,进入正题吧。

链表的功能,无非就是那么几个:删除,添加,查找定位,置空,确定链表长度,链表是否为空。哦,这些基本的功能,如果你都能很容易的实现,那你就相当不错了,来吧,跟我来,看看我是怎么实现的,我们探讨一下,获取对你有帮助。我很高兴我的博文会对你有帮助。嘿嘿
~

什么,要代码!等等,伙计,不要着急,代码,我会给你的,我没有那么吝啬,是吧。首先,我分析一下我是怎么实现的,看过我的别的博文的朋友,可能会了解我实现各种链表的习惯,那就是定位一个
head
节点,有什么用?大了说,什么用也没有,就是容易定位,小了说还是什么用也没有,你需要亲自实现一下的,看看有没有的区别在哪里,是的,我说的,你该自己去做做。在我的双向循环链表中,我没有改变我的习惯,还是老样子,来吧。跟着我的
head
走吧,去瞧瞧别的功能是怎么实现的。哈哈。你瞧好了。

struct Node

{

Node *lLink; //
左链指针

int value; //
节点数据值

Node *rLink; //
右链指针

};

这个结构要我多说吗?也许是不应该了。如果非要我说,也许我会说脏话了,我可是文明人。对吧,伙计!

class DblList
{
public:
DblList(Node *&);
~DblList();
int Length();               //计算双向循环链表的长度
int IsEmpty();              //判断链表是否为空
int Find(const int &);      //在链表中寻找特定值
void Insert(const int &);   //在链表中插入新节点
void Remove();              //删除某个节点
void ShowList();            //列出所有链表中的元素
void MakeEmpty();           //将链表置空
private:
Node *First, *Current;
};


这个是实现功能的类,很简单,没有什么特别的,你该懂得。其实,在每个函数的内部才是重点。是的,代码,我都贴出,自己看好了。如果有问题,
call me

ok
?伙计,或者留言,或者
…..
或者
……
不说了,你懂得!

代码下载地址:http://download.csdn.net/source/3184214
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: