单链表基本操作代码

本文详细介绍了单链表的基本操作,包括插入节点、删除节点、查找节点等核心代码实现,帮助读者理解链表数据结构及其操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <stdio.h>
#include <stdlib.h>

typedef int ElemType;

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

 //头插法建立单链表
LinkList Link_HeadInsert(LinkList &L){  
	LNode *s;
	int x;
	L = (LinkList)malloc(sizeof(LNode)); 
	L->next =NULL; //结构体用".",结构体指针用"->"
	scanf("%d",&x);
	while(x != 9999){
		s = (LNode*)malloc(sizeof(LNode));
		s->data = x;
		s->next = L->next;
		L->next = s;
		scanf("%d",&x);
	}
	return L;
}

//尾插法建立单链表
LinkList List_TailInsert(LinkList &L){ 
	int x;
	L = (LinkList)malloc(sizeof(LNode));
	LNode *s,*r=L;
	scanf("%d",&x);
	while(x != 9999){
		s = (LNode*)malloc(sizeof(LNode));
		s->data = x;
		r->next = s;
		r=s;
		scanf("%d",&x);
	}
	r->next = NULL;
	return L;
}

//输出链表所有数据
void PrintList(LinkList L){
	LNode *p;
	p = L->next;
	while(p!=NULL){
		printf("%d\t",p->data);
		p = p->next;
	}
	printf("\n");
}


//按节点序号来查找节点值
LNode *GetElem(