c++ 链表声明解读
问题描述:
下面代码是网上的,见连接,有几个问题:
1.创建头结点的head是什么时候声明的?
//创建头结点 void List::create_List() { head = new Node(0); }
2.第三、四行代码List(){create_List();} ~List(){clear();}这个如何解读,是什么作用,
class List { public: List(){create_List();} ~List(){clear();} //创建头结点 void create_List(); //插入函数 void insert(const int& d); //在指定位置插入 void insert_pos(const int& d,const int& d1); //删除指定数据的节点 void erase(const int& d); //修改指定数据 void updata(const int& d,const int& d1); //反转链表函数 void reverse(); //打印 void print(); private: //节点结构 struct Node{ int data; Node * next; Node(const int& d):data(d),next(NULL){} }; Node * head;//头节点 //清理链表函数 void clear(){ Node * p = head; //从头节点开始循环删除 while(p){ Node * q = p->next; delete p; p = q; } } //查找数据d的上一个节点位置的函数 //为了方便后面删除操作 Node* find(const int& d){ Node * p = head; for(;p;p=p->next){ if(p->next->data==d) break; } return p; } };
//创建头结点 void List::create_List() { head = new Node(0); }
答
1、head是它的私有成员呀,
Node * head;//头节点
2、
List()
~List()
这是构造函数和析构函数呀,C++类和对象特有的。你看,与类名同名,析构函数前有一个波浪线
答
struct Node{ int data; Node * next; Node(const int& d):data(d),next(NULL){} }; Node * head;//头节点
===这不是很清楚么
很简单的构造和析构函数,兄弟。
构造函数,当你创建对象时,你可能会需要做一些初始化工作,主要是为成员变量进行初始化
析构函数,当你销毁对象时,你可能会需要做一些收尾工作,主要是释放一些申请的空间
答
C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html
C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html