2009年5月9日星期六

我们说好的——张靓颖

  厄,听到“人群中再次邂逅,你变得那么瘦,我还是沦陷在你的眼眸”的时候,被小小震动了下~



好吗 一句话就哽住了喉
城市 当背景的海市蜃楼
我们 像分隔成一整个宇宙
再见 都化作乌有

我们说好决不放开相互牵的手
可现实说过有爱还不够
走到分岔的路口
你向左我向右
我们都倔强地不曾回头

我们说好就算分开一样做朋友
时间说我们从此不可能再问候
人群中再次邂逅
你变得那么瘦
我还是沦陷在你的眼眸

我们说好一起老去 看细水常流
却将会成为别人的某某
又到分岔的路口
你向左我向右
我们都强忍着不曾回头

我们说好 下个永恒里面 再碰头
爱情会活在当时光节节败退后
下一次如果邂逅
你别再那么瘦
我想一直沦陷在你的眼眸
这是无可救药爱情的荒谬



阅读全文>>

2009年5月6日星期三

END

  OK,很多人很多事,我已经不再去想

  也不会再去计较,就让这些终止好了~


阅读全文>>

2009年5月2日星期六

双侠——Maxam

  额,一次偶然的在《陆小凤传奇》的片尾听到的这首歌,蛮喜欢这种风格的~



鸟一对 天空海阔分飞 酒一杯 各自天南地北
两双腿 踏着时间去追 一个完美
不后悔 我们一去不回
你是谁 沾染日月清辉 我是谁 喝过银河之水
趁酒醉 双双到人间度一场是非
下一回 七度空间相会
我跟你相遇中国遥遥十万八千里
我跟你相遇在不属于自己的土地 是缘分 是巧合
让你我成为兄弟 是可遇 不可求那种无形的默契
鸟一对 在天空中相会 酒一杯 冲淡是是非非
两双腿 踏过千山万水 从来不累
纵不回 也在他乡交汇
你是谁 为我插刀两肋 我是谁 对你掏心掏肺
风一吹 世间的传说转眼就破碎
不后退 我们尽力而为
手一挥 掌一推 浩瀚宇宙没有极限的范围
小天地 大智慧 无极世界其实在你我心扉
手一挥 掌一推 清静心灵没有极限的范围
小天地 大智慧 无极世界其实没什么绝对

已经忘记与你一起经历了多少血和泪
这种感情已经超过了时间超越了年和岁 面对任何眼泪
受过多少罪 我们也不撤退一齐来吧喝醉 装满烈酒的杯 怎么碰 不会碎
鸟一对 在天空中相会 酒一杯 冲淡是是非非
两双腿 踏过千山万水 从来不累
纵不回 也在他乡交汇
你是谁 为我插刀两肋 我是谁 对你掏心掏肺
风一吹 世间的传说转眼就破碎
不后退 我们尽力而为
手一挥 掌一推 浩瀚宇宙没有极限的范围
小天地 大智慧 无极世界其实在你我心扉
手一挥 掌一推 清静心灵没有极限的范围
小天地 大智慧 无极世界其实没什么绝对
经得起风经得起浪 才知道什么叫珍贵
同尝过甘尝过苦 才明白什么是无悔 天地之大融会 无极两端相遇一对转眼间 就会
出现人间光芒之最



阅读全文>>

2009年4月30日星期四

四月特供——十佳歌手

  很早就应该Upload这些照片了,只是一直缺时间,刚好现在有时间~Now,Let's get down to bussiness!

  PS:照片来自两部分,一部分是由某猥琐男唐某用其CANON拍摄,由于他在贵宾席,视角较好,所以照片比较清晰。而KC偶,由于在最外层,加上偶的SONY T-300变焦能力有限以及个人的DC水平限制,不能非常清晰的拍摄到人的脸,SO……



  来个插曲,请看下面这张PP,没错,里面的那位就是猥琐男唐某,旁边坐得是另一位语文老师(已订婚)~尽情的YY吧~



——————————————————END——————————————————
  就拍了这些~总的来说,这届十佳歌手有点不如去年。9.84分似乎就拿到Top 1了,去年就要9.9X。而且~~今年没发现有穿裙子的……

  OK,That's all.让我们期待下一届吧,HIAHIA~



阅读全文>>

Decode——Paramore

  来自暮光之城~话说主唱的声音有点像艾薇儿,听着很自然~整个音乐的过程非常的紧凑,也挺符合“吸血鬼”电影的节奏~

How can i decide what's right
When you're clouding up my mind
I can't win your losing fight
All the time
Not gonna ever own what's mine
When you're always taking sides
But you won't take away my pride
No, not this time
Not this time
How did we get here?
When i used to know you so well
But how did we get here?
I think i know
The truth is hiding in your eyes
And its hanging on your tongue
Just boiling in my blood
But you think that I can't see
What kind of man that you are
If you're a man at all
Well,i will figure the one out
On my own
On my own
How did we get here?
I used to know you so well, yeah
How did we get here?
Well, i think i know
Do you see what we've done
We're gonna make such fools of ourselves
Do you see what we've done
We're gonna make such fools of ourselves
How did we get here?
When i used to know you so well
Yeah,Yeah,Yeah
How did we get here?
When i used to know you so well
I think i know
I think i know
There is something i see in you
It might kill me
I want it to be true



阅读全文>>

2009年4月25日星期六

郁闷ING~

  花了一段时间,终于把OS重新装好了,补丁和VS都弄好了,真TMD累,弄得差点疯掉~现在GHOST也备份好了,光驱烂了,以后不可能再用CD重装了,所以GHO要弄好~

  今天稍微看了下StatusBar的文档,感觉还可以,只是位置的自适应可能需要在后期相应WM_SIZE中调整下,不过用API弄出来的StatusBar似乎可以自动调整~

  AutorunLoadViewr似乎还有一段很长的开发周期,不知道下个星期的五一三天能不能搞定,尽力吧

  然后,可能最近要发奋学习了,哎,前几天自己弄了一个模型解释了为什么Chinese Edu越发展越烂,发现越思考这些问题,越觉得这个社会真TMD恶心。

  好了,理发去了,明早有语文、化学周练~


阅读全文>>

会呼吸的痛——梁静茹

  我终于到达,但却更悲伤。对这句很有感觉~



在东京铁塔 第一次眺望
看灯火模仿 坠落的星光
我终於到达 但却更悲伤
一个人完成 我们的梦想

你总说 时间还很多 你可以等我
以前我不懂得 未必明天 就有以后

想念是会呼吸的痛
它活在我身上所有角落
哼你爱的歌会痛
看你的信会痛
连沉默也痛
遗憾是会呼吸的痛
它流在血液中来回滚动
后悔不贴心会痛
恨不懂你会痛
想见不能见最痛

没看你脸上 张扬过哀伤
那是种多么 寂寞的倔强
你拆了城墙 让我去流浪
在原地等我 把自己捆绑

你没说 你也会软弱 需要依赖我
我就装不晓得 自由移动 自我地过

想念是会呼吸的痛
它活在我身上所有角落
哼你爱的歌会痛
看你的信会痛
连沉默也痛
遗憾是会呼吸的痛
它流在血液中来回滚动
后悔不贴心会痛
恨不懂你会痛
想见不能见最痛

我发誓不再说谎了
多爱你就会抱你多紧的
我的微笑都假了
灵魂像飘浮着
你在就好了
我发誓不让你等候
陪你做想做的无论什么
我越来越像贝壳
怕心被人触碰
你回来那就好了

能重来那就好了



阅读全文>>

2009年4月19日星期日

我怎么这么背,靠,Fuck the world!

  昨晚不知道把哪个驱动给删了,早上发现休眠失败,重启后一直蓝屏,安全模式都进不去,控制恢复台恢复未果……

   一怒之下重装,装了半天,发现光驱烂了,VS2003装不了了……现在只能蜗牛一样的Down,将近4G啊……天啊……

   I wonder fuck the world!


阅读全文>>

2009年4月18日星期六

Has it —— 羽泉

   一直都很喜欢这首歌,喜欢这种阔达,自信的感觉~



天空被雷雨划破
黑夜有了火
流星挣脱了银河
愿望有寄托
仙人掌开出花朵
沙漠就有了颜色
海在不远处唱歌
城市有耳朵

Has it不管世界多少诱惑
我有我选择
Has it与众不同
我有我性格
Has it不管世界多么辽阔
我有我自我
生命燃烧这一次
我有我快乐

不管世界多么辽阔
我有我自我
生命燃烧这一次
我有我快乐
Lala~ Lalalalala~
生命只燃烧一次
去找寻真的自我
我有我自由
我有我快乐



阅读全文>>

2009年4月11日星期六

凋零&重生,怀念阿桑

    前几天的中午,偶然在网上看到关于阿桑的死讯,在极度不信的搜索下,很遗憾的证实了这一消息。

    初识阿桑是在听到《一直很安静》之后,当时那种歌声中透露出来的淡淡的哀伤让我感动不已,同时也让我记住了阿桑的声音。

    阿桑的声音永远是那么哀伤,如同她的身世遭遇,给人一种莫名的感动,但又不是同情和怜悯。

    因为歌声,因为阿桑,因为所有的点滴。

    阿桑的死,如秋叶一般,零落,让人惋惜。

    或许对她来说,死也是一种解脱,不必再忍受病痛,忍受所有的所有……相信阿桑会在天堂得到永生,以她淡淡的忧伤,告别曾经的沧桑……

    离开尘世的喧嚣,飞向静默的天堂。没有翅膀的飞翔,比天使更接近天堂。祝愿阿桑,在天上的某个角落,永远快乐!

-----------------------     整理了阿桑的一些歌和图片


         叶子

叶子 是不会飞翔的翅膀
翅膀 是落在天上的叶子
天堂 原来应该不是妄想
只是我早已经遗忘
当初怎么开始飞翔
孤单 是一个人的狂欢
狂欢 是一群人的孤单
爱情 原来的开始是陪伴
但我也渐渐地遗忘
当时是怎样有人陪伴
我一个人吃饭 旅行 到处走走停停
也一个人看书 写信 自己对话谈心
只是心又飘到了哪里
就连自己看也看不清
我想我不仅仅是失去你

          寂寞在唱歌

Le ciel obscure
La solitude qui nous rend la peine
La ceour brise
a cause qu’il y a vécu seul
L’amour est parti
il y a longtemp que je t'ai vu
C'est trop long
C'est incroyable que je peux vivre comme ca...

天黑了
孤独又慢慢割着
有人的心又开始疼了
爱很远了很久没再见了
就这样竟然也能活着
你听寂寞在唱歌
轻轻的 狠狠的
歌声是这么残忍
让人忍不住泪流成河

谁说的
人非要快乐不可
好像快乐由得人选择
找不到的那个人来不来呢
我会是谁的谁是我的
你听寂寞在唱歌
轻轻的 狠狠的
歌声是这么残忍
让人忍不住泪流成河
你听寂寞在唱歌
温柔的 疯狂的
悲伤越来越深刻
怎样才能够让它停呢

你听寂寞在唱歌
轻轻的 狠狠的
歌声是这么残忍
让人忍不住泪流成河
你听寂寞在唱歌
温柔的 疯狂的
悲伤越来越深刻
怎样才能够让它停呢
你听寂寞在唱歌
轻轻的 狠狠的
歌声是这么残忍
让人忍不住泪流成河
你听寂寞在唱歌
温柔的 疯狂的
悲伤越来越深刻
谁能帮个忙让它停呢
HE~
天黑得
像不会再天亮了
明不明天也无所谓了
就静静的看青春难依难舍
泪还是热的泪痕冷了

    你要离开的一些时候

当你说你要离开一些时候
爱情还没成熟 
我来不及接受
面对你 
我该痛哭泪流
还是祝你
一路顺风
要等多久 
能等多久 
离开前握紧我的手
距离是最考验的关口 
失去前我们该尽量拥有
从左到右
从西到东 
逛四十分钟
在拥挤的人群中 
感觉没那么空
孤单会更容易承受
吸一口气
喝一杯酒 
high三分锺
若最后感情的变动 
如波涛般汹涌
留点回忆想想就够

(music)

看你走向国际班机的闸口
我还不够成熟
没有足够的宽容
去挥手 
去默默的承受
去挽救 
可能的伤口
该用什麽忍泪流

     一直很安静

空荡的街景
想找个人放感情
作这种决定
是寂寞与我为邻
我们的爱情
像你路过的风景
一直在进行
脚步却从来不会为我而停
给你的爱一直很安静
来交换你偶尔给的关心
明明是三个人的电影
我却始终不能有姓名
你说爱像云
要自在飘浮才美丽
我终于相信
分手的理由有时候很动听
给你的爱一直很安静
我从一开始就下定决心
以为自己要的是曾经
却发现爱一定要有回应
给你的爱一直很安静
除了泪在我的脸上任性
原来缘分是用来说明
你突然不爱我这件事情

        受了点伤

My love,晚安 就别再为难
别管我会受伤
想开 体谅 我已经习惯
不然又能怎样?

这个城市太会说谎 爱情只是昂贵的橱窗
沿路华丽灿烂 陈列甜美幻象
谁当真谁就上当

竟然以为你会不一样 但凭什么你要不一样
因为寂寞太冷 虚构出的温暖
没理由能撑到天亮

前进 转弯 我跌跌撞撞
在这迷宫打转
死心 失望 会比较简单
却又心有不甘

这个城市太会伪装 爱情就像霓虹灯一样
谁离开之后 却把灯忘了关 让梦作得太辉煌

以为能够留你在身旁 但是谁肯留在谁身旁
一首情歌都比一个亲吻更长
这就叫做好聚好散

别说你对我感到愧疚 别说你会永远想念我
我很知道孤单这条路怎么走
请你不要安慰我

My love,晚安 别放在心上
我只受了点伤
只是受了点伤



阅读全文>>

在Blogger中显示最新评论

    因为玉清姐最近换用了Blogger,问我如何添加显示最新评论的方法。于是经过一下下的整理后,决定发出来,算是和大家分享好了~

    首先在布局中添加一个HTML/JS工具,如下图所示

    然后在内容中输入下列代码:

CODE:

<br/><script language="javascript">
var numcomments 10;//10是显示评论数量,取值在1-10范围
var numchars 200;//200评论字数,最少设置100
</script>
<
script src="http://kingsamchen.blogspot.com/feeds/comments/default?alt=json-in-script&callback=commentDisplay"></script>

    然后把http://kingsamchen.blogspot.com换成你的Blogger地址,接着保存。

    接下来切换到布局的模板中,在<head></head>中加入下列JS代码~

CODE:

<script src='http://necommentjs.googlecode.com/files/newcoment2.js' type='text/javascript'></script>

    最后保存模板,切换到首页,就可以看见最新的评论了~而且评论条数和字数可以根据自己的需要进行调整~



阅读全文>>

2009年4月6日星期一

自实现链表类

    弄了一段时间的东西,把链表的基本功能进行封装~所使用的链表为单向链表,但是使用了头、尾指针,当前指针和当前结点前驱指针。

    本来是应该在清明那天Release的,但是由于个人原因,这个东西一拖再拖……

    好了,整个Project都完成了~拷贝构造函数和=操作符的重载也OK了~

    然后是SRC

CODE:

/**************************************************

** Project:LinkListClass

** File:LinkList.h

** Edition:v1.0.0 Demo

** Coder:KingsamChen [MDSA Group]

** Last Modify:2009-4-6

**************************************************/

#pragma once


template<typename T>
class CNode
{
  
public:
    
T m_Data;
    
CNode<T> *m_pNext;
};



template<typename T>
class CLinkList
{
  
public:
    
CLinkList();
    
CLinkList(const CLinkList<T> &Link);
    ~
CLinkList();
    
CLinkList<T>& operator=(const CLinkList<T> &Link);
    
void InsertFront(const &item);
    
void InsertRear(const &item);
    
void InsertBefore(const &item);
    
void InsertAfter(const &item);
    
T DeleteFront();
    
T DeleteCurrPos();
    
inline int GetCurrPos();
    
void ResetPos(int nNewPos);
    
inline int IsEndOfList();
    
inline int IsListEmpty();
    
inline int GetListSize();
    
void ClearList();
    
T Data();
    
void Data(const &item);
    
void NextNode();
    
CNode<T>* GetFrontPtr() const;

  
private:
    
CNode<T>* CreateNode(const &itemCNode<T> *pNext NULL);
    
void CopyList(const CLinkList<T> &Link);

  
private:
    
CNode<T> *m_pFront;
    
CNode<T> *m_pRear;
    
CNode<T> *m_pCurrNode;
    
CNode<T> *m_pPrevNode;
    
int m_nNodeCount;
    
int m_nCurrPos;
};



/**************************************************

** Project:LinkListClass

** File:LinkList.cpp

** Edition:v1.0.0 Demo

** Coder:KingsamChen [MDSA Group]

** Last Modify:2009-4-7

**************************************************/

#include "LinkList.h"
#include <iostream>
#include <conio.h>
#include <tchar.h>
#include <crtdbg.h>


#ifdef _UNICODE
  
#define _terr std::wcerr
  
#define _tout std::wcout
#else
  #define 
_terr std::cerr
  
#define _tout std::cout
#endif

using  
std::endl;

//=========================================
// 函数名: CLinkList
// 输  入: -
// 输  出: -
// 功  能: 构造函数
//=========================================
template<typename T>
CLinkList<T>::CLinkList() : m_pFront(NULL), m_pRear(NULL), m_pCurrNode(NULL), m_pPrevNode(NULL),
                            
m_nNodeCount(0), m_nCurrPos(0)
{

}



//=========================================
// 函数名: CLinkList
// 输  入: Link(const CLinkList<T>&) - 需复制的链表
// 输  出: -
// 功  能: 拷贝构造函数
//=========================================
template<typename T>
CLinkList<T>::CLinkList(const CLinkList<T> &Link) : m_pFront(NULL), m_pRear(NULL), m_pCurrNode(NULL), 
                                                    
m_pPrevNode(NULL), m_nNodeCount(0), m_nCurrPos(0)
{
  
CopyList(Link);
}


//=========================================
// 函数名: ~CLinkList
// 输  入: -
// 输  出: -
// 功  能: 析构函数
//=========================================
template<typename T>
CLinkList<T>::~CLinkList()
{
  
ClearList();
}



//=========================================
// 函数名: CreateNode
// 输  入: item(const T&) - 结点元素
//         pNext(CNode<T>*) - 后继结点的指针
// 输  出: CNode<T>* - 创建结点的指针
// 功  能: 创建一个结点
//=========================================
template<typename T>
CNode<T>* CLinkList<T>::CreateNode(const &itemCNode<T> *pNext /* = NULL */)
{
  
CNode<T> *pNewNode new CNode<T>;

  
if (!pNewNode)
  {
    
_terr<<_T("Create new node failed!")<<endl;
    
getch();
    
exit(1);
  }

  
// 设置结点属性
  
pNewNode->m_Data item;
  
pNewNode->m_pNext pNext;

  
return pNewNode;
}



//=========================================
// 函数名: InsertFront
// 输  入: item(const T&) - 结点元素
// 输  出: -
// 功  能: 在表头插入一个结点
//=========================================
template<typename T>
void CLinkList<T>::InsertFront(const &item)
{
  
// 创建新结点,该结点的后继结点为原来的头结点
  
CNode<T> *pNewNode CreateNode(itemm_pFront);  
  
m_pFront pNewNode;

  
// 如果为第一个结点,则设置尾指针
  
if (!m_nNodeCount)
  {
    
m_pRear pNewNode;
  }

  
m_pCurrNode pNewNode;
  
m_pPrevNode NULL;

  
m_nNodeCount++;
  
m_nCurrPos 0;
}



//=========================================
// 函数名: InsertRear
// 输  入: item(const T&) - 节点元素
// 输  出: -
// 功  能: 在表尾插入一个结点
//=========================================
template<typename T>
void CLinkList<T>::InsertRear(const &item)
{
  
if (!m_nNodeCount)
  {
    
// 对于一个空表来说,在头部和尾部插入
    // 的行为是一样的
    
InsertFront(item);
  } 
  
else
  
{
    
// 新的结点的后继结点指针必然是NULL
    
CNode<T> *pNewNode CreateNode(itemNULL);
    
CNode<T> *pOldNode NULL;

    
// 保存原来的尾结点指针
    // 作为新尾结点的前驱指针
    
pOldNode m_pRear;

    
m_pRear->m_pNext pNewNode;    
    
m_pRear pNewNode;
    
m_pCurrNode pNewNode;
    
m_pPrevNode pOldNode;

    
m_nNodeCount++;
    
m_nCurrPos m_nNodeCount 1;
  }
}



//=========================================
// 函数名: InsertBefore
// 输  入: item(const T&) - 结点元素
// 输  出: -
// 功  能: 在当前结点之前插入一个新结点
//=========================================
template<typename T>
void CLinkList<T>::InsertBefore(const &item)
{
  
// 当前结点为头结点
  
if (m_pCurrNode == m_pFront)
  {
    
InsertFront(item);
  } 
  
else
  
{
    
CNode<T> *pNewNode CreateNode(itemm_pCurrNode);

    
// m_pPrevNode和m_nCurrPos不会发生改变
    
m_pPrevNode->m_pNext pNewNode;
    
m_pCurrNode pNewNode;
    
m_nNodeCount++;
  }
}



//=========================================
// 函数名: InsertAfter
// 输  入: item(const T&) - 结点元素
// 输  出: -
// 功  能: 在当前结点之后插入一个新结点
//=========================================
template<typename T>
void CLinkList<T>::InsertAfter(const &item)
{
  
// 当前结点为尾结点
  
if (m_pCurrNode == m_pRear)
  {
    
InsertRear(item);
  } 
  
else
  
{
    
// 等效转换
    
m_pPrevNode m_pCurrNode;
    
m_pCurrNode m_pCurrNode->m_pNext;
    
m_nCurrPos++;    

    
InsertBefore(item);
  }
}



//=========================================
// 函数名: DeleteFront
// 输  入: -
// 输  出: T - 头结点元素
// 功  能: 删除头结点
//=========================================
template<typename T>
T CLinkList<T>::DeleteFront()
{
  
// 空链表
  
if (!m_pFront)
  {
    
_terr<<_T("Cannot operate a empty linklist! The operation was canceled")<<endl;
    
return NULL;
  }

  
// 注意结点个数及m_pFront所指位置导致的区别
  
T tmpData m_pFront->m_Data;
  
CNode<T> *pTmp m_pFront;
  
  
if (m_pCurrNode == m_pFront)
  {
    
m_pCurrNode m_pCurrNode->m_pNext;
  }

  
if (m_pPrevNode == m_pFront)
  {
    
m_pPrevNode NULL;
  }

  
if (m_pRear == m_pFront)
  {
    
m_pRear NULL;
  }

  
m_pFront m_pFront->m_pNext;

  
// 清理
  
delete pTmp;
  
pTmp NULL;
  
m_nNodeCount--;

  
if (m_nCurrPos)
  {
    
m_nCurrPos--;
  }

  
return tmpData;
}



//=========================================
// 函数名: DeleteCurrPos
// 输  入: -
// 输  出: T - 当前结点元素
// 功  能: 删除当前结点
//=========================================
template<typename T>
T CLinkList<T>::DeleteCurrPos()
{
  
// 空链表
  
if (!m_pFront)
  {
    
_terr<<_T("Cannot operate a empty linklist! The operation was canceled")<<endl;
    
return NULL;
  }

  
// 当前结点为头结点
  
if (m_pCurrNode == m_pFront)
  {
    
return DeleteFront();
  }

  
// 当前结点为尾结点
  
if (m_pCurrNode == m_pRear)
  {
    
CNode<T> *pTmp m_pCurrNode;
    
CNode<T> *pNewPrev m_pFront;

    
m_pRear m_pPrevNode;
    
m_pPrevNode->m_pNext NULL;
    
int nNewPrevPos m_nCurrPos 2;

    
// m_nPrevNode不存在
    
if (nNewPrevPos 0)
    {
      
m_pPrevNode NULL;
    }
    
else
    
{
      
// 遍历一下,得到m_pPrevNode的新地址
      // 如果是双向链表就不用这么麻烦了T_T
      
for (int 0nNewPrevPosn++)
      {
        
pNewPrev pNewPrev->m_pNext;
      }

      
m_pPrevNode pNewPrev;
    }

    
m_pCurrNode m_pRear;
    
T tmpData pTmp->m_Data;

    
// 清理
    
m_nNodeCount--;

    
delete pTmp;
    
pTmp NULL;
    
    
m_nCurrPos--;
    
    
return tmpData;
  }

  
// 正常中间
  
m_pPrevNode->m_pNext m_pCurrNode->m_pNext;

  
T Data m_pCurrNode->m_Data;
  
CNode<T> *pOldNode m_pCurrNode;

  
m_pCurrNode=m_pCurrNode->m_pNext;
  
  
delete pOldNode;
  
m_nNodeCount--;

  
return Data;
}



//=========================================
// 函数名: GetCurrPos
// 输  入: -
// 输  出: int - 当前结点位置
// 功  能: 返回当前节点位置
//=========================================
template<typename T>
inline int CLinkList<T>::GetCurrPos()
{
  
return m_nCurrPos;
}



//=========================================
// 函数名: ResetPos
// 输  入: nNewPos(int) - 当前结点的新位置
// 输  出: -
// 功  能: 设置当前节点的位置
//=========================================
template<typename T>
void CLinkList<T>::ResetPos(int nNewPos)
{
  
if (!m_nNodeCount)
  {
    
_terr<<_T("Cannot RessetPos in the empty list")<<endl;
    
return;
  }

  
if ((nNewPos 0) || (nNewPos >= m_nNodeCount))
  {
    
_terr<<_T("The supposed new pos was unvailed")<<endl;
    
return;
  }

  
if (== nNewPos)
  {
    
m_pPrevNode NULL;
    
m_pCurrNode m_pFront;
    
m_nCurrPos 0;
  } 
  
else
  
{
    
m_pPrevNode m_pFront;

    
// 注意循环次数
    
for (int 1nNewPosn++)
    {
      
m_pPrevNode m_pPrevNode->m_pNext;
    }

    
m_pCurrNode m_pPrevNode->m_pNext;
    
m_nCurrPos nNewPos;
  }  
}



//=========================================
// 函数名: IsEndOfList
// 输  入: -
// 输  出: int - 表尾:TRUE, 非表尾:FALSE
// 功  能: 检查当前结点是否在表尾
//=========================================
template<typename T>
inline int CLinkList<T>::IsEndOfList()
{
  
return (m_pCurrNode == m_pRear) ? 0;
}



//=========================================
// 函数名: IsListEmpty
// 输  入: -
// 输  出: int - 为空:TRUE, 非空:FALSE
// 功  能: 读取用户配置文件
//=========================================
template<typename T>
inline int CLinkList<T>::IsListEmpty()
{
  
return (!m_nNodeCount);
}



//=========================================
// 函数名: GetListSize
// 输  入: -
// 输  出: int - 当前链表的大小(结点数)
// 功  能: 返回当前链表的结点数
//=========================================
template<typename T>
inline int CLinkList<T>::GetListSize()
{
  
return m_nNodeCount;
}


//=========================================
// 函数名: ClearList
// 输  入: -
// 输  出: -
// 功  能: 清理整个链表
//=========================================
template<typename T>
void CLinkList<T>::ClearList()
{
  
// 链表已为空
  
if (!m_pFront)
  {
    
return;
  }

  
while  (m_pFront)
  {
    
CNode<T> *pTmp m_pFront;
    
m_pFront m_pFront->m_pNext;
    
delete pTmp;
  }

  
// 重置
  
m_pRear NULL;
  
m_pPrevNode NULL;
  
m_pCurrNode NULL;
  
m_nCurrPos 0;
  
m_nNodeCount 0;
}



//=========================================
// 函数名: Data
// 输  入: item(const T&) - 结点元素
// 输  出: -
// 功  能: 设置当前结点元素
//=========================================
template<typename T>
void CLinkList<T>::Data(const &item)
{
  
if (!m_pCurrNode)
  {
    
_terr<<_T("The current Node is unvailed")<<endl;
    
return;
  }
    

  
m_pCurrNode->m_Data item;
}



//=========================================
// 函数名: Data
// 输  入: -
// 输  出: T - 当前结点元素
// 功  能: 返回当前结点元素
//=========================================
template<typename T>
T CLinkList<T>::Data()
{
  
if (!m_pCurrNode)
  {
    
_terr<<_T("The current Node is unvailed")<<endl;
    
return NULL;
  }

  
return m_pCurrNode->m_Data;
}



//=========================================
// 函数名: NextNode
// 输  入: -
// 输  出: -
// 功  能: 将当前结点的后继结点设置为当前结点
//=========================================
template<typename T>
void CLinkList<T>::NextNode()
{
  
if (IsEndOfList() || IsListEmpty())
  {
    
_terr<<_T("The next node is unvalied")<<endl;
    
return;
  }

  
m_pPrevNode m_pCurrNode;
  
m_pCurrNode m_pCurrNode->m_pNext;
}



//=========================================
// 函数名: GetFrontPtr
// 输  入: -
// 输  出: CNode<T>*
// 功  能: 返回链表的头指针
//=========================================
template<typename T>
CNode<T>* CLinkList<T>::GetFrontPtr() const
{
  
return m_pFront;
}



//=========================================
// 函数名: CopyList
// 输  入: Link(const CLinkList<T>&) - 被复制的链表类对象
// 输  出: -
// 功  能: 复制链表
//=========================================
template<typename T>
void CLinkList<T>::CopyList(const CLinkList<T> &Link)
{
  
CNode<T> *pTmpFront Link.GetFrontPtr();

  
if (!pTmpFront)
  {
    
_terr<<_T("The Linklist whitch being copyed is unvailed")<<endl;
    
return;
  }

  
while (pTmpFront)
  {
    
InsertRear(pTmpFront->m_Data);
    
pTmpFront pTmpFront->m_pNext;
  }

  
pTmpFront NULL;
}



//=========================================
// 函数名: operator =
// 输  入: Link(const CLinkList<T>&) - 被复制的链表类对象
// 输  出: CLinkList<T>& - 复制完毕的链表对象
// 功  能: 重载=操作符
//=========================================
template<typename T>
CLinkList<T>& CLinkList<T>::operator =(const CLinkList<T> &Link)
{
  
CopyList(Link);

  
return *this;
}

    无效果图~

     最后诅咒浙江省苍南中学高二段段长叶思迁早登极乐~全家跟随~

     去学校自习了~

     哪有天朝,哪有卧槽

Download:LinkListClass_SRC.rar



阅读全文>>