不带头结点的单链表的建立

建立该链表利用的是尾插法

// 创建一个单链表,没有头结点,
#include 
#include 

using namespace std;
//------------------------------------------------
//************************************************
// 结构名 LNode ;
// 结构的作用:单链表的节点
// 节点数据的说明: data 关键字
//               next 指向下一个节点的指针
//**********************************************
struct LNode
{
	int data;
	LNode *next ;
};
//------------------------------------------------
//**********************************************
// 函数名:LinkCreate();
// 函数的功能:建立一个不带头结点的单链表
// 参数说明: head 指向链表第一个节点的指针
//          size 链表节点的个数
// 注意:在该函数里链表里关键字是rand()函数生成的随机数,不是利用scanf()函数输入的
//**********************************************
void LinkCreate(LNode *&head ,int size ) // size表示链表节点的数目
{
	head = NULL ;

	LNode * p = NULL ;
	LNode * q = NULL ;

	for (int i =0; i< size ;++ i)
	{
		p = new LNode ;
		p->data = rand()%1000; //生成随机数
		p->next = NULL ;

		if (head == NULL )
		{
			head = p ;
			q = p ;
		}
		else 
		{
			q->next = p ;
			q = p ;
		}
	}
}

//------------------------------------------------
//**********************************************
// 主函数
//**********************************************
int main()
{
	srand(time(0));

	LNode * p ;
	LinkCreate(p,10);

	while (p != NULL  )
	{
		cout << p->data << endl;
		p = p->next; 
	}

	return 0;
}
//------------------------------------------------

你可能感兴趣的:(数据结构与算法)