链表建立:头插法和尾插法

typedef struct LNode
{
	int data;
	struct LNode* next;
}LNode, *LinkList;

//建:头插法

void CreatList_func1(LinkList &L, int n)
{
	LNode *p;    // 不断建立节点的临时储存指针
	L = (LNode*)malloc(sizeof(LNode)); // 建立空表头节点
	L->next = NULL;
	// 输入n个数据
	for (int i = 0; i < n; i++)
	{
		p = (LNode*)malloc(sizeof(LNode)); //p指向一个新的节点空间;
		scanf("%d", &p->data); //读入数据 
		//把新的节点插入到头节点和第一个节点之间 
		p->next = L->next;  //新节点指向第一个节点 
		L-next = p;	  // 头节点指向新节点 
	} 	
} 

//建:尾插法

void CreatList_fuc2(LinkList &L, int n)
{
	LNode *p; //不断建立节点的临时储存指针
	LNode *tail; //永远指向尾节点 
	L = (LNode*)malloc(sizeof(LNode));
	L->next = NULL;
	tail = L; 
	//输入n个数据 
	for (int i = 0; i < n; i++) 
	{
		p = (LNode*)malloc(sizeof(LNode));  //p指向一个新的节点空间;
		scanf("%d", &p->data);  //读入数据 
		//把新节点连接到末尾 
		tail->next = p;   //末尾节点连到新节点,进而新节点变成末尾节点 
		tail = p; // 始终指向末尾节点 
	}
 } 
发布了24 篇原创文章 · 获赞 0 · 访问量 143

猜你喜欢

转载自blog.csdn.net/qq_45624989/article/details/105235282