首页 > 代码库 > 【C++/数据结构】单链表的基本操作
【C++/数据结构】单链表的基本操作
#pragma once #ifndef _CLIST_H_ #define _CLIST_H_ #include <iostream> #include <assert.h> using namespace std; template<class Type> class List; typedef enum { FALSE, TRUE }Status; template<class Type> class ListNode { friend class List<Type>; public: ListNode() :data(Type()), next(NULL) {} ListNode(Type d, ListNode<Type> *n = NULL) : data(d), next(n) {} ~ListNode() {} void setData(const Type &d) { data = http://www.mamicode.com/d;>
#include "CList.h" void main() { List<int> mylist; List<int> youlist; List<int> mergelist; int select = 1; int pos; int item; system("Color 0d"); while (select) { cout << "************************************" << endl; cout << "* [0] quit_system [1] push_back *" << endl; cout << "* [2] push_front [3] show_list *" << endl; cout << "* [4] pop_back [5] pop_front *" << endl; cout << "* [6] insert_val [7] delete_val *" << endl; cout << "* [8] merge [9] next *" << endl; cout << "* [10] find [11] sort *" << endl; cout << "* [12] resver [13] length *" << endl; cout << "* [14] clear [15] destroy *" << endl; cout << "* [16] modify_val [17] prio *" << endl; cout << "************************************" << endl; cout << "请选择:>"; cin >> select; switch (select) { case 1: cout << "请输入要插入的数据(-1结束):>"; while (cin >> item, item != -1) { mylist.push_back(item); } break; case 2: cout << "请输入要插入的数据(-1结束):>"; while (cin >> item, item != -1) { mylist.push_front(item); } break; case 3: system("cls"); mylist.show_List(); system("pause"); break; case 4: mylist.pop_back(); break; case 5: mylist.pop_front(); break; case 6: cout << "请输入要插入的值:>"; cin >> item; mylist.insert_val(item); break; case 7: cout << "请输入要删除的值:>"; cin >> item; mylist.delete_val(item); break; case 8: for (int i = 1; i < 10; i+=2) { mylist.push_back(i); } for (int i = 2; i < 10; i += 2) { youlist.push_back(i); } mergelist.merge(mylist, youlist); mergelist.show_List(); break; case 9: cout << "请输入要查找的值:>"; cin >> item; cout << "所在查找值的后继为:" << mylist.Next(item) << endl; break; case 10: cout << "请输入要查找的值:>"; cin >> item; cout << "该值指针为:" << mylist.find(item) << endl; break; case 11: mylist.sort(); break; case 12: mylist.resver(); break; case 13: cout << "线性表的长度为:" << mylist.length() << endl; break; case 14: mylist.clear(); break; case 15: mylist.destroy(); break; case 16: cout << "请输入要改动的值:>"; cin >> item; cout << "请输入改动后的值:>"; cin >> pos; mylist.modify_val(item, pos); break; case 17: cout << "请输入要查找的值:>"; cin >> item; cout << "所在查找值的前驱为:" << mylist.Prio(item) << endl; break; default: break; } } }执行界面例如以下:
【C++/数据结构】单链表的基本操作
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。