C语言链表在笔试面试中常考问题总结.doc

C语言链表在笔试面试中常考问题总结.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言链表在笔试面试中常考问题总结

1、实现单链表逆置   无头结点: 1 #includestdio.h 2 #includestdlib.h 3 4 typedef struct node{ 5 int data; 6 struct node *next; 7 }Node; 8 9 //创建链表 10 Node *CreateList(void){ 11 int val,i,n; 12 Node *head,*p,*q; 13 14 head=NULL; 15 printf(请输入您要建立的链表长度:\n); 16 scanf(%d,n); 17 printf(请输入您要输入的数据:\n); 18 for(i=0;in;i++){ 19 scanf(%d,val); 20 p=(Node*)malloc(sizeof(Node)); 21 p-data=val; 22 if(head==NULL) 23 head=q=p; 24 else 25 q-next=p; 26 q=p; 27 } 28 p-next=NULL; 29 return head; 30 } 31 32 //链表的逆置 33 Node *ReverseList(Node *head){ 34 Node *p,*q,*r; 35 p=head; 36 q=r=NULL; 37 while(p){ 38 q=p-next; 39 p-next=r; 40 r=p; 41 p=q; 42 } 43 return r; 44 } 45 46 //输出链表 47 void ShowList(Node *head){ 48 Node *p; 49 p=head; 50 while(p){ 51 printf(%d ,p-data); 52 p=p-next; 53 } 54 printf(\n); 55 } 56 57 void main(){ 58 Node *head; 59 60 head=CreateList(); 61 printf(链表逆置前的数据:\n); 62 ShowList(head); 63 64 head=ReverseList(head); 65 printf(链表逆置后的数据:\n); 66 ShowList(head); 67 }   运行演示:      2、判断单链表是否有环   判断链表是否存在环的办法为:   设置两个指针(fast,slow),初始值都指向头指针,slow每次前进一步,fast每次前进两步,如果链表存在环,则fast必定先进入环,而slow后进入环,两个指针必定相遇。(当然,fast先行从头到尾部为NULL,则为无环链表)程序如下: 1 #includestdio.h 2 #includestdlib.h 3 4 typedef struct node{ 5 int elem; 6 struct node * next; 7 }Node, *NodeList; 8 9 bool IsExitsLoop(NodeList head){ 10 NodeList slow=head,fast=head; 11 while(fast fast-next){ 12 slow=slow-next; 13 fast=fast-next-next; 14 if(slow==fast) 15 break; 16 } 17 return !(fast==NULL || fast-next==NULL); 18 } 19 20 void main(){ 21 //创建一个有环的单链表 22 NodeList head=NULL,p,q; 23 for(int i=1;i=5;i++){ 24 p=(NodeList)malloc(sizeof(Node)); 25 p-elem=i; 26 if(head==NULL) 27

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档