首页 > 代码库 > 单链表的建立和增删改查代码及讲解

单链表的建立和增删改查代码及讲解

//---单链表的单链式存储结构----
typedef struct LNode
{
	ElemType data;
	struct LNode *next;
}LNode,*LinkList;

//1.初始化
int Initlist(LinkList L)
{
	L=NULL;
	return OK;
}

//初始化(带头结点)
int Initlist(LinkList L)
{
	L=(LNode*)malloc(sizeof(Lnode));//为头结点分配内存空间
	L->next=NULL;
	return OK;
}

//求长度
int length_L(LinkList L)
{
	i=0;
	p=L->next;//把第一个数据赋给p
	while(p)//但p不为空的时候,那就一直计数
	{
		i++;
		p=p->next;
	}
	return i;
}
//3.访问第I个元素

Status GetElem_L(LinkList L,int i,ElemType &e)
		//L为带头结点的单链表的头指针
	{
		p=L->next;//p是链表的第一个元素
		j=1;
		while(p&&j<i)//当p指针存在并且没有到底i个元素的时候
		{
			p=p->next;//让p向前移动
			j++;//让J也自加1,直到J=I
		}
		if(!p||j>i)//找到最后还没有找到是,返回ERROR
			return ERROR;
		e=p->data;//把找到的数值赋给e,然后返回。
		return OK;
	}

	//4.在p所指节点之后插入某一元素

	q=(LinkList)malloc(sizeof(LNode))

	q->data=http://www.mamicode.com/x;//数据域赋值>

单链表的建立和增删改查代码及讲解