单链表实现(超简单)

#include<iostream>   
using namespace std;   

struct Node{
	int num;
	Node* next;
};

int  _tmain(int argc, _TCHAR* argv[])
{  
	/*
	//有头结点
	Node* phead = new Node;
	Node head={0,NULL};
	phead = &head;

	Node* pNode;
	bool bFirstNode = true;
	//判断第一个结点或者其他的,头插法
	for(int i=1;i<=5;i++)
	{
		Node* tempNode= new Node;
		tempNode->num = i;
		tempNode->next = NULL;
		if (bFirstNode){
			phead->next = tempNode;
			bFirstNode = false;
		}
		else{
			pNode = phead->next; 
			phead->next = tempNode;
			tempNode->next = pNode;
		}
	}

	//尾插法
	Node* pLast = new Node;
	for(int i=1;i<=5;i++)
	{
		Node* tempNode= new Node;
		tempNode->num = i;
		tempNode->next = NULL;
		if (bFirstNode){
			phead->next = tempNode;
			pLast = tempNode;
			bFirstNode = false;
		}
		else{
			pLast->next = tempNode;
			pLast = tempNode;
		}
	}

	for(Node* pCurrent=phead->next;pCurrent!=NULL;pCurrent=pCurrent->next)
	{
		printf("%d\t",pCurrent->num);
	}
	*/

	/*
	//没有头结点的链表
	Node* pHead = NULL;
	//头插法
	for(int i=1;i<=5;i++)
	{
		Node* tempNode= new Node;
		tempNode->num = i;
		tempNode->next = NULL;
		
		Node* pTemp = pHead;
		pHead = tempNode;
		tempNode->next = pTemp;
	}
	
	Node* pHead = NULL;
	Node* pLast = NULL;
	bool bFirstNode = true;
	//尾插法,需要判断是不是第一个元素
	for(int i=1;i<=5;i++)
	{
		Node* tempNode= new Node;
		tempNode->num = i;
		tempNode->next = NULL;

		if (bFirstNode)
		{
			pHead = pLast = tempNode;
			bFirstNode = false;
		}
		else {
			pLast->next = tempNode; 
			pLast = tempNode;
		}
	}

	for(Node* pCurrent=pHead;pCurrent!=NULL;pCurrent=pCurrent->next)
	{
		printf("%d\t",pCurrent->num);
	}

	getchar();   
	return 0;   
}  

其中包含带头结点的链表:头插法和尾插法

不带头结点的链表:头插法和尾插法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值