单链表的相关实现
2016-06-09 22:01
288 查看
头文件SList.h #define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> #include<stdio.h> using namespace std; #pragma once typedef int DataType; struct Node { Node(const DataType& d) :_data(d) , _next(NULL) {} DataType _data; struct Node* _next; }; class SList { public: friend ostream& operator<<(ostream& os, SList& s); SList() :_head(NULL) , _tail(NULL) {} ~SList() { if (_head == NULL) return; Node* cur = _head; while (cur) { Node* del = cur; cur = cur->_next; delete del; } delete cur; _head = NULL; _tail = NULL; } public: void PushBack(const DataType& d); void PopBack(); void PushFront(const DataType& d); void PopFront(); Node* Find(const DataType& d); void Insert(Node* pos,const DataType& d); private: Node* _head; Node* _tail; }; 源文件 #include"SList.h" ostream& operator<<(ostream& os, SList& s) { if (s._head == NULL) return os; Node* cur = s._head; while (cur!= NULL) { os << cur->_data << "->"; cur = cur->_next; } cout << "over" << endl; return os; } void SList::PushBack(const DataType& d) { Node* newNode = new Node(d); if (_head == NULL)//无节点 { _head = newNode; _tail = _head; } else { _tail->_next = newNode; _tail = newNode; } } #include"SList.h" int main() { SList slist1; slist1.PushBack(1); slist1.PushBack a5b2 (2); slist1.PushBack(3); slist1.PushBack(4); cout << slist1 << endl; slist1.PopBack(); cout << slist1 << endl; slist1.PopBack(); cout << slist1 << endl; slist1.PopBack(); cout << slist1 << endl; slist1.PopBack(); cout << slist1 << endl; slist1.PopBack(); cout << slist1 << endl; getchar(); return 0; }
本文出自 “顺势而为” 博客,请务必保留此出处http://lk123456.blog.51cto.com/10831443/1751092
相关文章推荐
- C语言顺序表的几种实现
- mysql登录用户验证遇到的问题 access denied for user ‘user’@'localhost'
- 《零售心理战》:711董事长总结的运营经验。三星推荐
- 天猫魔盘在ubuntu16.04中的使用
- 开发者必看的提高效率的在线工具
- hdu 1195(搜索)
- Maven Installation
- 《数据结构》算法3.8数制转换的递归实现
- L1-020. 帅到没朋友
- zabbix监控系统使用详解
- Win7+Ubuntu(EasyBCD硬盘安装)
- VisionMobile:开发者状况2016年Q1(二)平台状况
- 第七届ACM山东省赛-B Fibonacci
- [转]nginx启动期都做了哪些事
- 接口回调
- 用Java开发的MySQL,Oracle,PostgreSQL,mongoDB 数据库web管理工具软件
- Android Jni之把Hello.c改为Hello.cpp
- gem5 — a modular discrete event driven computer system simulator platform — install
- Python实现抓取页面上链接的简单爬虫分
- 极客成长手记(1)——搭建linux系统