由于自己已经转到c++了,所以想要用c++实现数据结构,具体大概包括链表,栈,队列,图,树,查找等方面的内容,并尽力去造个轮子
代码#include结果如下#include using namespace std; //数据结构 struct ListNode {//链节点 int val; ListNode* next; ListNode() :val(0), next(nullptr) {}; ListNode(int x) :val(x), next(nullptr) {}; ListNode(int x, ListNode* next) :val(x), next(next) {}; }; ListNode* head = new ListNode(-1);//头节点 bool deleteNode(int val) {//链表的删除 ListNode* pre = head; ListNode* curr = head->next; while (curr) { if (curr->val == val) { ListNode* temp = curr; pre->next = curr->next; delete temp; return true; } pre = pre->next; curr = curr->next; } return false; } bool insertNode(int val) {//链表的加入 ListNode* tail = head->next; head->next = new ListNode(val); head->next->next = tail; return true; } void traverse() { ListNode* curr = head->next; if (curr == nullptr)cout << "没有元素" << endl; while (curr) { cout << curr->val << " "; curr = curr->next; } cout << endl; } int main() { cout << "按1加入元素" << endl << "按2删除元素" << endl << "按3遍历元素" << "按其他键退出" << endl; while (1) { int control; cout << "请输入(1 - 3)来进行操作:" << endl; //cout << endl; cin >> control; int val; bool ret = false; switch (control) { case 1: cout << "请输入要加入的元素:" << endl; cin >> val; ret=insertNode(val); if (!ret)cout << "插入元素有问题" << endl; break; case 2: cout << "请输入要删除的元素:" << endl; cin >> val; ret=deleteNode(val); if (!ret)cout << "没有要删除的元素" << endl; break; case 3: cout << "经过遍历可以得到:" << endl; traverse(); break; default: exit(0); break; } } return 0; }



