下载此文档

C数据结构 链表.doc


文档分类:IT计算机 | 页数:约13页 举报非法文档有奖
1/13
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/13 下载此文档
文档列表 文档介绍
C数据结构_链表.docstructNode*phead;//头指针struetNode*ptail;//尾指针structNode*p;//插入删除位置指针intIon;//记录链表长度};Type>tcmplato<classsinglelisType>::singlelist()//初始化链表phead=newstructNode;if(phead)〃初始化链表//如果内存分配成功就初始数据成员phead->pt=NULL;ptai]=phead;p二NULL;lon=0;//初始化尾结点〃初始插入删除位置指针〃初始长度else//内存分配失败,输岀提示cout<<z,单链表初始内存分配失败!"《endl;cout<<z,程序已终止!!!zz<<endl;exit(-l); //终止进程template<classType>boolsinglelist<Type>::(Typom)//向尾部增加数据m{structNode*p二newstructNode;//分配结点if(!p) 〃分配失败就返回假retunifalse;p->data=m;p->pt二NULL;pta订-〉pt二p;ptail=p;lon++;returntrue;//分配成功就将数据m保存至结点〃将结点指向为空//将结点挂到尾结点上//将尾指针重新指向尾结点〃增加表长度//增加结点完成就返回真template<classType>boolsinglelist<Type>::Position(intn)//返回n指定的位置{intk=l;p=phead; //每次将p重新指向头指针while(p->pt!=NULL&&k<n) 〃查找用户指定位置p二p-〉pt;k++;if(p->pt==NULL|k>n||n<l)〃如果用户指定位置超出范围就返回假mturnfalse;elsereturntrue;}templato<classType>boolsinglelist<Type>::Insert_app(intn,Typem)//在指定位置n插入数据mif(!Position(n))returnfalse;//判断位置指针是否合法,不合法就返回假structNode*pl=newstructNode;//如果指定范围合法就增加结点if(!pl)returnfalse;//如果结点内存分配失败就返冋假pl->da二m;pl_>pt二p_>pt;p->pt=pl;lon++;returntrue;〃将数据保存至结点//将结点插入表中//增加表长template<classType>boo1singlelist<Type>::Insert_all(Typen,Typem)//在指定数据n的位置插入数据m,对所有n数据位置插入intMark=0;p=phead;while(p->pt!=NULL)//定义一个标志//将P指针重新指向头指针structNode*Before二p;//定义一个前向指针,用于指向p的前一个位置P二p_〉pt;if(p->data==n){//查找数据structNode*pl二newstructNode;if(!pl)returnfalse;pl->dapl->pt=Before->pt;Before~>pt=pl;Mark卄;lon++;//查找成功就分配结点〃将结点挂到数据n的位置//进位标志,表示有过数据插入//增加元素个数}if(Mark>0) //判断标志是否有增加,如果有表示有数据插入成功。returntrue;elsereturnfalse;{if(phead->pt==NULL) //判断链表是否为空cout«/z链表为空,没有数据输出!!/z«endl;else{〃不为空就输出数据p=phead;while(p->pt!=NULL){p二p-〉pt;cout«p->data«〃“;}cout«endl;}}template<classType>intsinglolist<Typc>::output_long() //返回表中元素个数,不包含头结点{returnIon;}templatc<classType>boolsinglelist<Type>::Delete_app(intn,Type&m)//删除n指定位置的元素,并赋给mif([Position(n))returnfalse;if(p->pt二二pteiil)ptail^p;//通过position函数来查找位置,如果位置合法就会返回真〃如果位置不合法就直接返回假//判断要删除的位置是不是尾指针位置//如果是就重新修改指针位置struetNode*After二p->pt;m=After->data;p->pt二After->pt;deleteAfter;Ion

C数据结构 链表 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数13
  • 收藏数0 收藏
  • 顶次数0
  • 上传人ttteee8
  • 文件大小196 KB
  • 时间2019-09-17
最近更新