C++ 数据结构实现
一、数据结构概述
数据结构是计算机科学的基本概念之一,是指数据的组织、管理和存储方式。在计算机科学中,数据结构是一种特殊的格式,用于组织和存储数据。数据结构可分为线性结构、树结构、图结构等不同类型。在 C++ 语言中,可以通过类和模板来实现各种不同类型的数据结构。
二、链表实现
链表是一种常见的数据结构,可以在任意节点处插入或删除数据,而无需移动其他数据。在 C++ 中,可以使用类实现链表。下面是一个简单的链表实现,包括节点和链表类:
// 链表节点类 class ListNode { public: int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; // 链表类 class LinkedList { public: ListNode *head; LinkedList() { head = NULL; } // 在头部插入一个节点 void insert(int x) { ListNode *node = new ListNode(x); node->next = head; head = node; } // 删除第一个节点 void remove() { if (head == NULL) return; ListNode *node = head; head = head->next; delete node; } // 打印链表 void print() { ListNode *node = head; while (node != NULL) { cout val next; } cout 1 -> NULL list.remove(); // 删除 3 list.print(); // 输出 2 -> 1 -> NULL
三、栈实现
栈是一种后进先出(LIFO)的数据结构,可以在栈顶插入和删除数据,非栈顶数据不能访问。在 C++ 中,可以使用类和模板实现栈。下面是一个简单的栈实现:
template class Stack { private: vector data; public: // 入栈 void push(T x) { data.push_back(x); } // 取栈顶元素 T top() { if (data.empty()) return -1; // 栈为空 return data.back(); } // 出栈 void pop() { if (data.empty()) return; // 栈为空 data.pop_back(); } // 判断栈是否为空 bool empty() { return data.empty(); } // 返回栈中元素个数 int size() { return data.size(); } };
使用该栈类可以很方便地进行栈操作:
Stack<int> s; s.push(1); // 入栈 1 s.push(2); // 入栈 2 s.push(3); // 入栈 3 cout
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
上一篇:C++变量生命周期与作用域 下一篇:返回C++函数引用的正确方式
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。