单链表的实现 C++
2017-12-20 12:27
148 查看
//struct node //{ // datatype info; // node *next; // node() :next(NULL) {} // node(datatype x) :info(x), next(NULL) {} //}; class node //结点类 { public: node(); node(datatype x) { info = x; next = NULL; } ~node(); datatype info; node *next; private: }; node::node() { next = NULL;//初始化 } node::~node() { } class linklist //链表类 { public: linklist(); ~linklist(); void add(datatype x); void display(); void _delete(); private: node *head; int length; }; linklist::linklist() { head = new node(); length = 0; } linklist::~linklist() { } void linklist::add(datatype x) { if (head->next == NULL) { node *p = new node(x); head->next = p; } else { node *temp = head->next; node *p = new node(x); while (temp->next != NULL) { temp = temp->next; } temp->next = p; } } void linklist::display() { node *temp = head->next; if (temp == NULL) { cout << "LinkList is empty" << endl; return; } else { while (temp) { temp->info.display(); temp = temp->next; } } } void linklist::_delete() { string delnumber; cout << "请输入要删除学生学号:" << endl; cin >> delnumber; node *temp = head->next, *p = temp; if (temp == NULL) { cout << "表是空的。" << endl; return; } else { if (temp->info.number == delnumber)//要删除的是第一个节点 { p = temp; temp = temp->next; head->next = p->next; delete(p); } while (temp&&temp->next != NULL) { if (temp->next->info.number == delnumber) { p = temp->next;//temp为要删除节点的前驱 temp->next = p->next; delete(p); } else { temp = temp->next; } } cout << "删除成功" << endl; } }
相关文章推荐
- 我认为是最简单的c++实现线性表中链表相关过程
- C++实现双向链表
- 【数据结构】用C++实现单循环链表的各种操作(包括头删,尾删,插入,逆序,摧毁,清空等等)
- C++实现的链表队列
- C++实现的单链表
- C++实现复杂链表
- C++实现线性表之单链表
- C++实现的简易链表
- 单链表之C++实现
- C++实现的单链表通用模板
- 数据结构_串_用链表做存储结构实现KMP算法_C++实现
- 单链表C++实现_0904
- 从尾到头打印链表(C++和Python 实现)
- 【C++】实现单链表
- c++ 实现单向链表
- 用C++实现的双向链表
- 利用C++简单实现顺序表和单链表的示例代码
- 使用C++实现的双向链表
- 不带头节点的链表尾插法C++实现
- queue链表实现C++