码迷,mamicode.com
首页 > 其他好文 > 详细

单链表

时间:2017-07-24 00:10:17      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:长度   size   tde   ext   isp   list   delete   logs   nod   

#include "stdafx.h"
#include <malloc.h>
typedef char ElemType;
typedef struct LNode
{
	ElemType data;
	struct LNode * next;
}LinkList;
// 创建头结点
void InitList(LinkList *&L)
{
	L = (LinkList *)malloc(sizeof(LinkList));
	L->next = NULL;
}
// 销毁单链表
// (LinkList *) 指针类型
void DestroyList(LinkList *&L)
{
	LinkList *p = L, *q = p->next;
	while (q != NULL)
	{
		free(p);
		p = q;
		q = p->next;
	}
	free(p);
}
// 单链表是否为空
int ListEmpty(LinkList *L)
{
	return (L->next == NULL);
}
// 返回单链表的长度
int ListLength(LinkList *L)
{
	LinkList *p = L;
	int i = 0;
	while (p->next!=NULL)
	{
		i++;
		p = p->next;
	}
	return i;
}
void DispList(LinkList *L)
{
	LinkList *p = L->next;
	while (p!=NULL)
	{
		printf_s("%c", p->data);
		p = p->next;
	}
	printf_s("\n");
}
int GetElem(LinkList *L, int i, ElemType &e)
{
	int j = 0;
	LinkList *p = L;
	while (j<i&&p!=NULL)
	{
		j++;
		p = p->next;
	}
	if (p == NULL)
	{
		return 0;
	}
	else
	{
		e = p->data;
		return 1;
	}
}

int LocateElem(LinkList *L, ElemType e)
{
	LinkList *p = L->next;
	int n = 1;
	while (p!=NULL&&p->data!=e)
	{
		p = p->next;
		n++;
	}
	if (p == NULL)
	{
		return 0;
	}
	else
	{
		return n;
	}
}

int ListInsert(LinkList *&L, int i, ElemType e)
{
	int j = 0;
	LinkList *p = L, *s;
	while (j<i-1&&p!=NULL)
	{
		j++;
		p = p->next;
	}
	if (p == NULL)
	{
		return 0;
	}
	else
	{
		s = (LinkList *)malloc(sizeof(LinkList));
		s->data = e;
		s->next = p->next;
		p->next = s;
		return 1;
	}
}

int ListDelete(LinkList *&L, int i, ElemType &e)
{
	int j = 0;
	LinkList *p = L,*q;
	while (j < i - 1 && p!=NULL)
	{
		j++;
		p = p->next;
	}
	if (p == NULL)
	{
		return 0;
	}
	else
	{
		q = p->next;
		if (q == NULL)
		{
			return 0;
		}
		else
		{
			e = q->data;
			p->next = q->next;
			free(q);
			return 1;
		}
	}
}

  

单链表

标签:长度   size   tde   ext   isp   list   delete   logs   nod   

原文地址:http://www.cnblogs.com/tuqunfu/p/7226390.html

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