C++ 数据结构链表的实现代码 在计算机科学中,链表是一种常用的数据结构,它是一种线性数据结构,其中每个元素都是一个独立的对象,称为节点(Node),每个节点都包含着一个数据域和一个指向下一个节点的指针域。在 C++ 中,实现链表需要定义节点的结构和链表的操作函数。 节点(Node)的基本结构 在 C++ 中,节点的基本结构可以用以下代码表示: ```cpp class Node { public: int data; Node *next; Node(int da = 0, Node *p = NULL) { this->data = da; this->next = p; } }; ``` 在上面的代码中,我们定义了一个节点类 `Node`,它有两个成员变量:`data` 和 `next`。`data` 用于存储节点的数据,而 `next` 是一个指针,指向下一个节点。节点的构造函数 `Node` 接受两个参数:`da` 和 `p`,其中 `da` 是节点的初始数据,而 `p` 是指向下一个节点的指针。如果不指定第二个参数,构造函数将默认将 `next` 设置为 `NULL`。 链表(List)的基本结构 在 C++ 中,链表的基本结构可以用以下代码表示: ```cpp class List { private: Node *head, *tail; int position; public: List() { head = tail = NULL; }; ~List() { delete head; delete tail; }; void print(); void insert(int da = 0); void delete(int da = 0); void search(int da = 0); }; ``` 在上面的代码中,我们定义了一个链表类 `List`,它有两个私有成员变量:`head` 和 `tail`,分别指向链表的头节点和尾节点。链表的构造函数 `List` 将 `head` 和 `tail` 初始化为 `NULL`。链表的析构函数 `~List` 将释放链表中的所有节点。 链表的操作函数 链表的操作函数包括插入、删除和查找等。插入操作可以在链表的任意位置插入一个新节点,删除操作可以删除链表中的某个节点,查找操作可以查找链表中的某个节点。 单链表的实现 以下是单链表的实现代码: ```cpp #include <iostream> using namespace std; class Node { public: int data; Node *next; Node(int da = 0, Node *p = NULL) { this->data = da; this->next = p; } }; class List { private: Node *head, *tail; int position; public: List() { head = tail = NULL; }; ~List() { delete head; delete tail; }; void print(); void insert(int da = 0); void delete(int da = 0); void search(int da = 0); }; void List::print() { Node *p = head; while (p != NULL) { cout << p->data << " "; p = p->next; } cout << endl; } void List::insert(int da) { Node *p = new Node(da); if (head == NULL) { head = p; tail = p; } else { tail->next = p; tail = p; } } void List::delete(int da) { Node *p = head; Node *q = NULL; while (p != NULL) { if (p->data == da) { if (q == NULL) { head = p->next; } else { q->next = p->next; } delete p; return; } q = p; p = p->next; } } void List::search(int da) { Node *p = head; int pos = 0; while (p != NULL) { if (p->data == da) { cout << "Found at position " << pos << endl; return; } p = p->next; pos++; } cout << "Not found" << endl; } ``` 在上面的代码中,我们实现了链表的插入、删除和查找操作。插入操作将新节点插入到链表的尾部,删除操作将删除链表中的某个节点,查找操作将查找链表中的某个节点。
下载后可阅读完整内容,剩余3页未读,立即下载
- 粉丝: 10
- 资源: 949
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- OptiX传输试题与SDH基础知识
- C++Builder函数详解与应用
- Linux shell (bash) 文件与字符串比较运算符详解
- Adam Gawne-Cain解读英文版WKT格式与常见投影标准
- dos命令详解:基础操作与网络测试必备
- Windows 蓝屏代码解析与处理指南
- PSoC CY8C24533在电动自行车控制器设计中的应用
- PHP整合FCKeditor网页编辑器教程
- Java Swing计算器源码示例:初学者入门教程
- Eclipse平台上的可视化开发:使用VEP与SWT
- 软件工程CASE工具实践指南
- AIX LVM详解:网络存储架构与管理
- 递归算法解析:文件系统、XML与树图
- 使用Struts2与MySQL构建Web登录验证教程
- PHP5 CLI模式:用PHP编写Shell脚本教程
- MyBatis与Spring完美整合:1.0.0-RC3详解