你好,欢迎来到! 设为首页 收藏本站
联系电话
论文范文 当前位置: > 写作指南 > 论文范文 >

C语言中指针链表的学习探讨(2)

时间:2013-08-18 14:34来源:核心期刊网 作者:刘山根 点击:
如定义数组,结合前面所学数组的知识,可这样定义: struct student s[10]; struct stu s1[20]; 2 指针链表 掌握了前面指针和结构体的知识内容,对于指针链表的理解和掌握是非常重要的。 2.1 指针链表的定义 这里
  如定义数组,结合前面所学数组的知识,可这样定义: 
  struct student s[10]; struct stu s1[20]; 
  2 指针链表 
  掌握了前面指针和结构体的知识内容,对于指针链表的理解和掌握是非常重要的。 
  2.1 指针链表的定义 
  这里主要讲解单项链表结点的结构体类型的定义,对于初学者掌握了这种定义,对于以后学习更为复杂的链表知识的理解是很有帮助的。 
  单项链表结点的定义: 
  struct node 
  { 
  int data; //存放的数据,可以定义其他更为复杂的数据结构 
  struct node *next; //指向struct node类型数据,用此建立链表 
  }; 
  2.2 指针链表的建立 
  定义好类型后,再定义变量,并将链表建立起来,形成整数数据按升序建立的数据链,下面通过函数create来实现链表的建立。 
  struct node *create() 
  { 
  struct node *head,*p,*q,num; 
  head=NULL; 
  scanf("%d",&num); 
  while(num!=0) 
  { 
  p=(struct node *)malloc(sizeof(struct node )); 
  if(p==NULL) 
  { 
  printf("Allocation failure\n"); 
  exit(0); 
  } 
  p->data=num; 
  p->next=NULL; 
  if(head==NULL) 
  head=p; 
  else 
  q->next=p; 
  q=p; 
  } 
  return head; 
  } 
  2.3 指针链表的插入 
  链表建立完成后,最常用的操作之一就是对链表的数据进行增加,也就是插入操作,具体程序通过insert函数实现。 
  struct node*insert(struct node*head,sturct node*r,int*x) 
  { 
  struct nod *p,*q; 
  if(head==NULL) 
  { 
  head=r; 
  r->next=NULL; 
  } 
  else 
  { 
  p=head; 
  while(*x>p->data&&p->next!=NULL) 
  { 
  q=p; 
  p=p->next; 
  } 
  if(*xdata) 
  { 
  if(p==head) 
  head=r; 
  else 
  q->next=r; 
  p->next=p; 
  } 
  else 
  if(p==NULL) 
  { 
  p->next=r; 
  r->next=NULL; 
  } 
  return head; 
  } 
  2.4 指针链表的删除 
  对于链表中数据的删除也是链表数据中操作的重点,具体实现过程通过函数deletenode实现。 
  struct node*deletenode(struct node*head,int*x) 
  { 
  struct nod*p,*q; 
  if(head==NULL) 
  { 
  printf("This is a empty list."); 
  return head; 
  } 
  p=head; 
  while(*x!=p->data&&p->next!=NULL) 
  { 
  q=p; 
  p=p->next; 
  } 
  if(*x==p->data) 
  { 
  if(p==head) 
  head=p->next; 
  else 
  q->next=p->next; 
  free(p); 
  } 
  else 
  printf("NOT FOUND"); 
  return head; 
  } 
  3总结 


  核心期刊网(www.hexinqk.com)秉承“诚以为基,信以为本”的宗旨,为广大学者老师提供投稿辅导、写作指导、核心期刊推荐等服务。
  核心期刊网专业期刊发表机构,为学术研究工作者解决北大核心CSSCI核心统计源核心EI核心等投稿辅导咨询与写作指导的问题。

  投稿辅导咨询电话:18915033935
  投稿辅导客服QQ: 论文投稿1002080872 论文投稿1003158336
  投稿辅导投稿邮箱:1003158336@qq.com
------分隔线----------------------------
栏目列表  
推荐论文  
热点论文  
 
QQ在线咨询
投稿辅导热线:
189-1503-3935
微信号咨询:
18915033935
网站简介 核刊总览 普刊专栏 期刊验证 学术答疑 服务流程 写作指南 支付方式 信用说明 联系我们
CopyRight © 2013 All Rights Reserved.
免责声明:本站提供投稿辅导 论文投稿 投稿辅导 核心期刊检索 核心投稿辅导等服务,本站刊载文章仅代表作者观点
并不意味着本站认同,部分作品系转载,版权归原作者或相应的机构;若某篇作品侵犯您的权利,请来信告知:1003158336@qq.com