数据结构与算法单链表的实现.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

文档分享 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档