欢迎来到第壹文秘! | 帮助中心 分享价值,成长自我!
第壹文秘
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 第壹文秘 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    数据结构代码.docx

    • 资源ID:462206       资源大小:51.47KB        全文页数:27页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构代码.docx

    数据结构代码P2,例2-1voidunion(List&La,UstLb)1.aJen=ListLength(La);LbJen=UStLerIgth(Lb);for(i=l;i<=Lb_len;i+)GetElem(Lb,i,e);if(!LocateElem(La,e,equal)UStIrlSert(La,+Lajen,e);P21例2-2,将voidMergeLiSt(L运tLa,ListLb,List&Lc)InitList(Lc);i=j=l;k=O;1.aen=ListLength(La);Lb_len=ListLength(Lb);while(i<=La_Len)&&(j<=Lb_len)GetElem(La,i,ai);GetElem(Lb,j,bj);if(ai<=bj)ListInsert(Lc,+k,ai);+i;elseListInsert(Lc,+k,bj);+jwhile(i<=LaJen)GetElem(La,i+,ai);ListInsert(Lc,+k,ai);while(j<=Lb_len)GetElem(Lb,i+,bj);ListInsert(Lc,+k,bj);P22,线性表的依次存储结构#defineLIST_INIT_SIZE1OO#defineLISTINCREMENT10typedefstructElemType*elem;*线性表占用的数组空间*/intlength;intlistsize;SqList;初始化操作StatusIniL运t_Sq(SqLiSt&L)1.elem=(ElemTypeA)malloc(LIST_INIT_SIZE*sizeof(ElemType);if(!L.elem)exit(OVERFLOW);1.Iength=O;1.listsize=LISTJNIT,SIZE;returnOK;P24,在依次表里插入一个元素StatusL运HnserJsq(SqLiSt&L,inti,ElemTypee)if(i<lIi>=L.length+l)returnERROR;if(L.length>=L.listsize)newbase=(ElemType*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizf(ElemType);if(!newbase)exit(OVERFLOW);1.elem=newbase;1.listsize+=LISTINCREMENT;q=&(L.elemi-l);for(p=&(L.elemL.length-l);p>=q;p)*(p+l)=*p;*q=e;+L.length;returnOK;P24,在依次表里删除一个元素StatusLiStDelete_Sq(SqL运t&L,inti,ElemType&e)if(i<l)II(i>L.length)returnERROR;p=&(L.elemi-l);e=*p;q=L.elem÷L.length-1;for(+p;p<=q;+p)*(p-l)=*p;L.length;returnOK;P25,在依次表里查找一个元素intLocatElem_Sq(SqListLjElemTypee,Status(*compare)(ElemType,ElemType)i=l;p=L.elem;while(i<=L.length&&!(*compare)(*p+,e)÷+i;if(i<=L.length)returni;elsereturn0;P26,依次表的合并voidMergeL运t_Sq(SqL运tLa,SqListLb,SqList&Lc)pa=La.elem;pb=Lb.elem;1.c.Iistsize=Lc.Iength=La.length+Lb.length;pc=Lc.elem=(ElemType*)malloc(Lc.listsize*sizeof(ElemTpe);if(!Lc.elem)exit(OVERFLOW);paast=La.elem+La.length-1;pb_last=Lb.elem+Lb.length-1;while(pa<=pajast&&pb<=pbjast)if(*pa<=*pb)*pc+=*pa+;else*pc+=*pb+;while(pa<=pajast)*pc+=*pa+;while(pb<=pb_last)*pc+=*pb+;)P28,线性表的单链表存储结构TjedefstructLNodeElemTypedata;structLNode*next;LNode/LinkList;LinkList为结构指针类型*/P29,查找元素StatusGetEIem_L(LinkLiStL,inti,ElemType&e)p=L->next;j=l;while(p&&j<i)p=p->next;+j;if(!pIIj>i)returnERROR;e=p->data;returnok;P29,在单链表中插入一个元素StatusListInsert_L(LinkList&L,inti,ElmeTypee)p=L;j=O;while(p&&j<i-l)p=p->next;+j;if(!pIIj>i-l)returnERROR;s=(LinkList)malloc(sizf(LNode);s->data=e;s->next=p->next;p->next=s;returnOK;P30,在单链表中删除一个元素StatusListDelete_L(LinkList&L,inti,Elemtype&e)p=L;j=O;while(p->next&&j<i-l)p=p->next;÷+j;if(!(p->next)j>i-l)returnERROR;q=p->next;p->next=q->next;e=q->data;free(q);returnOK;P30,建立单链表voidCreateList_L(LinkList&L,intn)1.=(Linklist)malloc(sizeof(Lnode);1.->next=NULL;for(i=n;i>0;i)p=(LinkList)malloc(sizeof(Lnode);scanf(&p->data);p->next=L->next;1.->next=p;P31,合并单链表voidmergelist_L(LinkList&La,LinkList&Lb,LinkLiSt&Lc)pa=La->next;pb=Lb->next;1.c=pc=La;while(pa&&pb)if(pa->data<=pb->data)pc->next=pa;pc=pa;pa=pa->next;)else(pc->next=pb;pc=pb;pb=pb->next;pc->next=pa?pa:pb;free(Lb);P3线性表的静态单链表存储结构#defineMAXSIZE1000typedefstructElemTypedata;intcur;component,SlinkListMAXSIZE;P32,定位函数intLocateElem_SL(SlinkLists,ElemTypee)i=sO.cur;while(i&&si.data!=e)i=si.cur;returni;voidIniteSpace_SL(SlinkList&space)for(i=0;i<MAXSIZE-l;+i)spacei.cur=i+l;spaceMAXSIZE-1.cur=O;intMalloc_SL(SlinkList&space)i=spaceO.cur;if(spaceO.cur)spaceO.cur=spacei.cur;returni;P35,线性表的双链表存储结构typedefstructDulNodeElemTypedata;structDulNode*prior,*next;DulNode,*DuLinklist;# defineTRUE1# defineFALSEOtypedefstructSElemType*base;SElemType*top;i11tstacksize;/栈可运用的最大容量SqStack;P47,栈的初始化StatusInitStack(SqStack&S)S.base=(SElemType*)malloc(STACKJNIT.SIZE*sizeof(SElemType);if(!S.base)exit(OVERFLOW);S.top=S.base;S.stacksize=STACKNIT_SIZE;returnOK;取栈顶元素StatusGetTop(SqStackS,SElemType&e)if(S.top=S.base)returnERROR;e=*(S.top-1);returnOK;StatusPush(SqStack&S,SElemTypee)if(S.top-S.base>=S.stacksize)S.base=(SElemType*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(SElemType);if(!S.base)exit(OVERFLOW);S.top=S.base+S.stacksize;S.stacksize+=STACKINCREMENT;*S.top+=e;returnOK;StatusPop(SqStack&S,SelemType&e)if(S.top=S.base)returnERROR;e=*S.top;returnOK;P48,转换为8进制voidconversion()InitStack(三);SCanf(“d”,&N);while(N)(Push(s,N%8);N=N/8;while(!StackEmpty(s)Pop(S,e);Printf("%d",e);P55,移动圆盘voidhanoi(intn,charx,chary,charz)*将塔座X上按直径由小到大且至上而下编号为1至n的n个圆盘按规则搬到塔座Z±,Y可用作协助塔座*/if(n=l)move(x,l,z);/*将编号为1的圆盘从X移动Z*/else(hanoi(n-l,x,z,y);/*将X上编号为1至II-I的圆盘移到Y,Z作协助塔*/move(x,n,z);/*将编号为n的圆盘从X移到Z*/hanoi(n-l,y,x,z);

    注意事项

    本文(数据结构代码.docx)为本站会员(p**)主动上传,第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第壹文秘(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 1wenmi网站版权所有

    经营许可证编号:宁ICP备2022001189号-1

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!

    收起
    展开