- 1、本文档共78页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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--
您可能关注的文档
- 孔雀东南飞(全)概要.ppt
- 东风EQ2080越野汽车三轴式分动器设计。。开题报告讲述.doc
- 孔雀东南飞(用)概要.ppt
- 孔雀东南飞上课概要.ppt
- 孕产妇产前一般知识宣教概要.doc
- 孕产妇管理.ppt概要.ppt
- 孕产期运动概要.ppt
- 孕前及产后的中医调养1概要.ppt
- 孔雀东南飞课件定稿概要.ppt
- 孔雀东南飞 - 副本概要.ppt
- Unit 9 I go there by bus 单词讲解课件 湘少版2024英语三年级下册.pptx
- Unit 10 Is she a driver 单词讲解课件 湘少版2024英语三年级下册.pptx
- Unit 8 Once upon a Time 单元检测 人教版七年级英语下册.docx
- Unit 8 Once upon a Time 第1课时 Section A(1a-Pronunciation)(分层作业) 人教版七年级英语下册.docx
- Unit 8 Once upon a Time 第2课时 Section A(2a-2e)(分层作业) 人教版七年级英语下册.docx
- Unit 7 Wash your hands 单词讲解课件 湘少版2024英语三年级下册.pptx
- Unit 8 Children’s Day 单词讲解课件 湘少版2024英语三年级下册.pptx
- Unit 8 Colours单词导学课件 译林版2024英语三年级下册.pptx
- Unit 7 A Day to Remember 第2课时 Section A(2a-2e)(分层作业) 人教版七年级英语下册.docx
- Unit 7 A Day to Remember 第4课时 Section B(1a-1d)(分层作业) 人教版七年级英语下册.docx
文档评论(0)