- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
word完美格式
精心整理 学习帮手
单链表的实现
实现单链表的基本操作,必须包括初始化链表(元素为空)、销毁链表、求表长、查找、插入、删除、遍历(打印)等操作。请编写程序,实现上述单链表的基本操作。
注意:1.元素类型可以自定义
2.可以是带头结点的单链表或不带头结点的单链表
#includestdio.h
#includestdlib.h
#includestring.h
typedef int datatype;
typedef struct node
{
datatype data;
struct node *next;
}LNode,*LinkList;
/*
//创建不带头结点的单链表
Linklist Create_LinkList()
{
return NULL;
}
*/
//创建带头结点的单链表
LinkList Create_LinkList()
{
LinkList L=NULL;
L=(LinkList)malloc(sizeof(LNode));
if(L)
L-next=NULL;
return L;
}
//打印单链表
void Print_LinkList(LinkList H)
{
if(H == NULL)
{
printf(?????????\n);
}
else
{
printf(head--);
LinkList p=H-next;
while(p!=NULL)
{
printf(%d,p-data);
printf(--);
p=p-next;
}
printf(\n);
}
}
//销毁单链表
void Destroy_LinkList(LinkList *H)
{
LinkList p, q;
p = *H;
while(p)
{
q = p;
p = p-next;
free(q);
}
*H = NULL;
if(*H==NULL)
printf(销毁成功,请退出\n);
else
printf(销毁失败\n);
}
//求表长
int Length_LinkList(LinkList L)
{
LNode *p=L;
int j=0;
while(p-next)
{
p=p-next;
j++;
}
return j;
}
//表长功能实现
void length(LinkList L)
{
int i=0;
i=Length_LinkList(L);
printf(表长:%d\n,i);
}
//查找操作
//1)按序号查找
LNode * Get_LinkList1(LinkList L,int i)
{
LNode *p=L;
int j=0;
while(p-next!=NULLji)
{
p=p-next;
j++;
}
if(j==i)
return p;
else
return NULL;
}
//2)按值查找即定位
int Locate_LinkList2(LinkList L,datatype x)
{
LNode *p=L;
int i=0;
while(p-data!=x)
{
p=p-next;
i++;
}
return i;
}
//查找功能实现
void find(LinkList L)
{
int i,n;
LNode *p,*s;
datatype x;
printf(选择下列功能\n);
printf(\t1)按序号查找\n);
printf(\t2)按值查找即定位\n);
scanf(%d,i);
switch(i)
{
case 1:
printf(请输入第几个元素:);
scanf(%d,n);
p=Get_LinkList1(L,n);
if(p==NULL)
printf(查找失败\n);
else
printf(您所查找的元素为:%d\n,p-data);
break;
case 2:
printf(请输入元素值:);
scanf(%d,x);
i=Locate_LinkList2(L,x);
if(i!=0)
printf(第%d个元素\n,i);
else
pr
文档评论(0)