码迷,mamicode.com
首页 > 编程语言 > 详细

数据结构与算法 链表的操作

时间:2015-03-31 16:01:32      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:

tepedef struct Node{

int date;
struct Node *next;
} List;
//创建一个链表
void CreatList(List **ptrl)
{
	(**ptrl)=(List*)malloc(sizeof(List));
	(*List)->next=NULL;
} 
//求长度 
int length(List *ptrl)
{
	List *p=ptrl;
	int j=0;
	while(p)
	{
		p=p->next;
		j++;
	}
	return j;
}
//按序号查找 
int FindList(List *ptrl,int k)
{
	List *p=ptrl;
	int i=1;
	while(p!=NULL&&i<k)
	{
		p=p->next;
		i++
	}
	if(i=k)
	return p;
	else
	return NULL;
}
//按值查找
List *Find(int x,List *ptrl)
{
	List *p=ptrl;
	while(p!=NULL&&p->date!=x)
	p=p->next;
	return p;
	
}
//链表的插入
List* InsertList(int *e,List *ptrl,int i)
{
	List *p,*s;
	if(i==1)//插入的元素在表头 
	{
		s=(List*)malloc(sizeof(List));
		s->date=x;
		s->next=ptrl;
		return s;
	}
    p=Find(i-1,ptrl)//如果要插入的元素为空则返回 
    if(p==NULL)
    {
    	printf("canshucuowu");
    	return NULL;
    }
    else
    {
    	s=(List*)malloc(sizeof(List));//插入操作 
    	s->date=x;
    	s->next=p->next;
    	p->next=s;
    	return ptrl;
    }
}
//链表的删除
 List* DelseteList(int *e,List *ptrl,int i,)
 {
 	List *p,*s;
 	if(i==1)
 	{
 		s=ptrl;
 		if(ptrl!=NULL)
 		ptrl=ptrl->next;
 		else ruturn NULL;
 		free(s);
 		return ptrl;
 	}
 	p=Find(i-1,ptrl)
 	if(p==NULL)
 	{
 		printf("bucunzia1");
 	    return ;
	 }
	 else
	 {
	 	s=p->next;
	 	p->next=s->next;
		 free(s); 
	 }	
 }

数据结构与算法 链表的操作

标签:

原文地址:http://blog.csdn.net/u012878380/article/details/44780661

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!