#include <iostream>
#include <stdlib.h>
#include <stdbool.h>

using namespace std;
//结点
class Node
{
public:
	int data;
	Node* next;
	Node(int d)
	{
		data = d;
		next = NULL;
	}
};
//链表
class List
{
	Node* head;
public:
	List()
	{
		head =NULL;
	}
	void init(Node *p)
	{
		head = p;
	}
	//插入
	void insert(Node* p)
	{
		p -> next = head;
		head = p;
	}
	//删除
	Node* delete_node(Node* p)
	{
		Node** pnext;
		for(pnext = &head;*pnext;pnext = &(*pnext) ->next)
		{
			if(*pnext == p)
			{
				*pnext = p -> next;
				return p;
			}
		}
		return NULL;
	}
	//遍历链表
	/*void trave_list(Node* p)
	{
		for(p = head;p;p = p ->next)
		{
			cout<< p->data << endl;
		}
	}*/
	//查找
	Node* search_list(int key)
	{
		Node* p;
		p =head;
		while(p)
		{
			if(p->data == key)
			{
				cout << "----" << p->data << "----" << endl;
				return p;
			}
			p = p->next;
		}
		return NULL;
	}
	//销毁链表
	void destroy()
	{
		Node* p;
		Node* q;
		for(p = head;p;)
		{
			q = p -> next;
			delete p;
			p = q;
		}
		head = NULL;
	}
	friend ostream& operator << (ostream& os,List& list);
};
//遍历并打印
ostream& operator << (ostream& os,List& list)
{
	Node *p;
	for(p = list.head;p;p = p ->next)
	{
		cout<< p->data << " ";
	}
	return os;

}
int main()
{
	List list;
	Node *p;
	for(int i =0;i<10;i++)
	{
		p = new Node(i);
		list.insert(p);

	}
	p = list.search_list(5);//在链表中找到结点
	Node* t = list.delete_node(p);//把结点移除
	list.delete_node(t);//释放结点空间
	//list.trave_list(p);
	cout<< list << endl;//遍历并打印
	list.destroy();//销毁
	return 0;
	
}
												

C++实现简易单向链表的更多相关文章

  1. Reverse Linked List II 单向链表逆序(部分逆序)

    0 问题描述 原题点击这里. 将单向链表第m个位置到第n个位置倒序连接.例如, 原链表:1->2->3->4->5, m=2, n =4 新链表:1->4->3-& ...

  2. 【编程题目】输入一个单向链表,输出该链表中倒数第 k 个结点

    第 13 题(链表):题目:输入一个单向链表,输出该链表中倒数第 k 个结点.链表的倒数第 0 个结点为链表的尾指针.链表结点定义如下: struct ListNode {int m_nKey;Lis ...

  3. 输出单向链表中倒数第k个结点

    描述 输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针. 链表结点定义如下: struct ListNode { int       m_nKey; ListNode* ...

  4. Linus:利用二级指针删除单向链表

    Linus大神在slashdot上回答一些编程爱好者的提问,其中一个人问他什么样的代码是他所喜好的,大婶表述了自己一些观点之后,举了一个指针的例子,解释了什么才是core low-level codi ...

  5. 【转】Linus:利用二级指针删除单向链表

    原文作者:陈皓 原文链接:http://coolshell.cn/articles/8990.html 感谢网友full_of_bull投递此文(注:此文最初发表在这个这里,我对原文后半段修改了许多, ...

  6. C语言实现单向链表及其各种排序(含快排,选择,插入,冒泡)

    #include<stdio.h> #include<malloc.h> #define LEN sizeof(struct Student) struct Student / ...

  7. 数据结构——Java实现单向链表

    结点类: /** * @author zhengbinMac * 一个OnelinkNode类的对象只表示链表中的一个结点,通过成员变量next的自引用方式实现线性表中各数据元素的逻辑关系. */ p ...

  8. 输入一个单向链表,输出该链表中倒数第K个结点

    输入一个单向链表,输出该链表中倒数第K个结点,具体实现如下: #include <iostream> using namespace std; struct LinkNode { publ ...

  9. 单向链表JAVA代码

        //单向链表类 publicclassLinkList{       //结点类     publicclassNode{         publicObject data;         ...

随机推荐

  1. python如何永久添加模块搜索路径

    win10系统 依次点击:控制面板\系统和安全\系统\高级系统设置\环境变量   找不到的话,直接在设置中搜索  环境变量  也一样 此时上面是用户变量 下面是系统变量   在系统变量中找到PYTHO ...

  2. python 基础(九) 文件操作

    文件操作 一.函数: f = open(’文件名','打开方式'[,encoding='字符编码']) open 打开的方式 字符 说明 r 只读的方式打开 rb 以二进制的形式打开文件 只读 r+ ...

  3. [BZOJ3128]a+b Problem

    题解 最小割+主席树优化建图 首先看到每个点只有\(0/1\)两种状态就想到最小割 然后由于有一个限制是点\(i\)是黑点且有符合条件的白点就会减去\(p_i\) 所以我们将\(S\)集合设为黑点集合 ...

  4. 由Reference展开的学习

    在阅读Thinking in Java的Containers in depth一章中的Holding references时,提到了一个工具包java.lang.ref,说这是个为Java垃圾回收提供 ...

  5. ZOJ Seven-Segment Display 暴力dfs + 剪枝

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3954 0 = on     1 = off A seven segment ...

  6. 前端之CSS常见兼容性问题

    1.双倍浮动BUG: 描述:块状元素设置了float属性后,又设置了横向的margin值,在IE6下显示的margin值要比设置的值大: 解决方案:给float的元素添加 display:inline ...

  7. CF1066E Binary Numbers AND Sum

    思路: 模拟.实现: #include <iostream> using namespace std; ; ], b[]; ]; int main() { int n, m; while ...

  8. 【原创】微信公众号与HTML 5混合模式揭秘4——jssdk调用微信扫一扫

    微信公众号与HTML 5混合模式揭秘1——如何部署JSSDK 微信公众号与HTML 5混合模式揭秘2——分享手机相册中照片 微信公众号与HTML 5混合模式揭秘3——JSSDK获取地理位置   在JS ...

  9. Genymotion的安装与设置

    Genymotion是一款非常好用的虚拟机,利用它可以在window.Liunx或MAC系统上实现Android的模似器.对于开发人员来说,有了Android模似器,就可以在电脑上实时调试安卓app, ...

  10. linux下phpstudy的搭建以及网站的搭建

    step1: 下载SSH连接到IP地址(阿里云上购买的) step2: 安装下载phpstudywget -c http://lamp.phpstudy.net/phpstudy.bin chmod ...