C++中怎么实现链表操作

C++中怎么实现链表操作,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

成都创新互联是专业的临清网站建设公司,临清接单;提供成都网站设计、网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行临清网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

C++链表操作代码示例:

// linklist.cpp : 定义控制台应用程序的入口点。   #include "stdafx.h"   #include "malloc.h"   #include "stdlib.h"   #define NULL 0   #define LEN sizeof(struct student)   struct student   {   long num;   float score;   struct student* next;   };   int n;   struct student* creat()   {   struct student *head;   struct student *p1,*p2;   n=0;   p1=p2=(struct student*)malloc(LEN);   scanf("%ld",&p1->num);   scanf("%f",&p1->score);   head=NULL;   while (p1->num!=0)   {   n++;   if (n==1)   {   head=p1;   }   else   {   p2->next=p1;   }   p2=p1;   p1=(struct student*)malloc(LEN);   scanf("%ld",&p1->num);   if (p1->num==0)   break;   scanf("%f",&p1->score);   }   p2->next=NULL;   return (head);   };   void print(struct student *head)   {   struct student *p;   printf("\n New,These %d records are:\n",n);   p=head;   if (head!=NULL)   {   do   {   printf("%d %5.1f\n",p->num,p->score);   pp=p->next;   }while (p!=NULL);   }   }   struct student* insert(struct student *head,struct student *stud)   {   struct student *p0, *p1, *p2;   p1=head;   p0=stud;   if (head==NULL)   {   head=p0;   p0->next=NULL;//insert into head point   }   else   {   while ((p0->num>p1->num)&&(p1->next!=NULL))   {   p2=p1; //p2 is point to just p1 point to node;   p1p1=p1->next;   }   if (p0->num<=p1->num)   {   if (p1==head)   {   head=p0;//insert into before first node   }   else   {   p2->next=p0;//insert into after point p2   }   p0->next=p1;   }   else   {   p1->next=p0; //insert into after last point   p0->next=NULL;   }   }   n++;   return(head);   };   struct student* del(struct student *head,long num)   {   struct student *p1, *p2;   if (head==NULL)   {   printf("\n list Null!\n");   return (head);   }   p1=head;   while (num!=p1->num&&p1->next!=NULL)   //find num if equal p1->num   {   p2=p1;   p1p1=p1->next;   }   if (num==p1->num)   {   if (p1==head)   head=p1->next;//delete head node because num=head.num   else   p2->next=p1->next;//delete node. node is not head point   printf("delete:%ld\n",num);   n--;   }   else   {   printf("%ld not been found!\n",num);   }   return (head);   };   int _tmain(int argc, _TCHAR* argv[])   {   struct student *head,*end;   head=creat();   print(head);   struct student insertnode;   insertnode.num=3;   insertnode.score=900;   head=insert(head,&insertnode);   print(head);   head=del(head,3);   print(head);   return 0;   }

看完上述内容,你们掌握C++中怎么实现链表操作的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


文章题目:C++中怎么实现链表操作
文章源于:http://ybzwz.com/article/jseeid.html