C++中链表例子(有详细的注释) 学c++的时候 大家一定会对 链表 很难弄明白 所以就给大家一个例子 重点的说明了链表的用法 还加了很详细的注释 例子: #include using namespace std; struct Node //很多同学对这个名字很模糊,节点的英文就是Node { //不一定非要用Node 的。 int data; //节点中的数据 结构体 Node 的成员变量 Node* next; //指向下一节点的指针,习惯用next 命名 结构体 Node 的成员变量 Node( const int& d=int() ) //结构体也可以有构造函数 ,d=T()来指定默认值 :data(d),next(NULL) //用构造函数来初始化成员变量 data 和指针 {} //所有数据类型,默认初始化都为 0,这里 data 默认初始化为 0 }; //老师是把 Node 作为封装类的内包结构体,这里我给分开写一下 class Chain //封装链表 { private: //数据成员通常都是private 的 Node* head; //首先,我们要一个Node 型的指针来保存链表的第一个节点; int length; //再用一个整型变量来记录当前链表内的节点数 public: Chain() //在构造函数里建立一个空链表,即 head 指向 NULL :head(NULL),length(0){} //节点数为 0; //这里小小插句嘴:当我们在类中定义函数时(不是声明),相当于在前面加上一个inline修饰 void delall() //见名知意,这个函数用来删除链表中的所有节点 { Node* pdel; //定义一个Node 型指针用来保存要删除的节点 while( head != NULL ) //当 head 的指向不为 NULL 时,就是链表中还存在节点 { pdel = head; //这里备份 head 的当前指向节点 head = head->next; //把 head 的指向改变为下一节点 delete pdel; //把 head 的原指向给删除掉 } //如此一直下去,尾节点的next 肯定是指向 NULL 的,那删除最后一个的时候 //head 就被赋值为 NULL,不满足循环条件,退出循环 length = 0; //把节点数归零 } ~ Chain(){ delall(); } //在析构函数中调用delall 函数,来完成对象销毁时清理工作 //这样一个链表必须具备的功能就实现了。下面我们来实现他的增、删、查、改功能 Node*& getpoint( int position ) //相信大家已经发现,对链表的操作,其实全部 { //通过指针来实现的,那就需要定义一个函数来返回当前节点的指针(引用) if( position<0 || position>length ) //对节点编号进行合法检查 ...