网站大量收购闲置独家精品文档,联系QQ:2885784924

严蔚敏版数据结构所有算法代码讲述.doc

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

严蔚敏版数据结构所有算法代码 ------------------------线性数据结构----------------------------- 2013年9月 //线性表、链表 //栈、队列 //数组、广义表 //串 -------------------------线性表---------------------- typedef struct { char name[20];//注意如果应用指针的形式 //在初始化每个结点时一定要先为结点中的每个变量开辟内存空间 char sex; char addr[100]; unsigned int age; char phonenum[20]; }node;//结点描述 typedef struct { node *p; int length;//当前顺序表长度 int listsize;//当前分配的线性表长度 }list;//线性表描述 list L;//定义一个线性表 int initlist(list l)//构造一个空的线性表 { l.p=(node*)malloc(LIST_INIT_SIZE*sizeof(node)); if(!(l.p)) exit(1); l.length=0; l.listsize=LIST_INIT_SIZE; return true; } void destroylist(list l)//销毁线性表操作 { if(l.p!=NULL) { free(l.p); printf(销毁成功!\n); } else printf(线性表不存在!\n); } int clearlist(list l)//将线性表置空操作 { if(l.p==NULL) { printf(线性表不存在!\n); return false; } else { free(l.p); l.p=(node*)malloc(l.listsize*sizeof(node)); l.length=0; } return true; } int listempty(list l)//判断线性表是否为空表 { if(l.p==NULL) return true; else return false; } int getelem(list l,int i,node e)//用e返回表中第i个数据元素 { if(l.p==NULL) return false; else e=l.p[i-1]; return true; } int priorelem(list l,int i,node pre_e)//得到第i个元素的前驱元素 { if(i==0||l.p==NULL) return false; else pre_e=l.p[i-1]; return true; } int nextelem(list l,int i,node next_e)//得到表中第i个元素的后继元素 { if(i=l.length||l.p==NULL) return false; else next_e=l.p[i+1]; return true; } int insertlist(list l,int i,node e)//将元素e插入到表l中第i个元素的后面 { node *q,*k; if(i1||il.length+1) return false; if(l.length=l.listsize) { l.p=(node *)realloc(l.p,(l.listsize+LISTINCREMENT)*sizeof(node)); if(!l.p) exit(1); l.listsize+=LISTINCREMENT; } k=l.p[i-1]; for(q=l.p[l.length-1];qk;q--) *(q+1)=*q; *k=e; l.length++; return true; } int deletelist(list l,int i,node e)//删除表中第i个元素并用e返回其值 { node *q; int j=i-1; if(i1||il.length) return false; e=l.p[i-1]; for(q=l.p[i-1];jl.length-1;j++) *q=*(++q); l.length--

文档评论(0)

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

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

1亿VIP精品文档

相关文档