您的位置:首页 > 理论基础 > 数据结构算法

【数据结构】单链表

2015-01-18 21:38 190 查看
#include <stdio.h>
#include <stdlib.h>
#include <STRING.H>

typedef struct LinkNode
{
	int date;  //数据域
	struct LinkNode * next;
}linkNode;

typedef struct Linklist
{
	int length;     
	linkNode *head;
}linklist;

linklist *Creatlist()
{
	linklist *list;
	list=(linklist *)malloc(sizeof(linklist));
	memset(list,0,sizeof(linklist));
	list->length=0;
	list->head=(linkNode*)malloc(sizeof(linkNode));
	list->head->next=NULL;	
	return list;
}

int insertlist(linklist *s,linkNode item)
{
	linkNode *n;
	if(s==NULL)
		return 0;
	n=(linkNode*)malloc(sizeof(linkNode));
	n->date=item.date;
	n->next=s->head->next;   //头插法
	s->head->next=n;
	s->length++;
	return 1;
}

int dellist(linklist *s,int pos)
{	
	int i=0;
	linkNode *p=s->head->next;
	linkNode *pa=s->head;
	if(s==NULL) 
		return 0;
	while(i!=pos)
	{
		pa=p;
		p=p->next;
	}
		pa->next=p->next;
		free(p);
	s->length--;
	return 1;
}

void display(linklist *s)
{
	int i=0;
	linkNode *p=s->head->next;
	while(i<s->length)
	{
		printf("%d ",p->date);
		p=p->next;
		i++;
	}
	printf("\n");
}

int main()
{
	linklist *list=NULL;

	int i;
	list=Creatlist();
	for(i=0;i<10;i++)
	{
		linkNode n;
		n.date=i;
		insertlist(list,n);
	}
	display(list);
	for(i=0;i<10;i++)
	{
		dellist(list,0);
		display(list);
	}
	return 0;
}

<img src="http://img.blog.csdn.net/20150118213800491?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTc4MTU1ODA2Ng==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<span style="white-space:pre">	</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: