- 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--
您可能关注的文档
最近下载
- 2023-2024学年上海市黄浦区部分学校八年级下学期期中考数学试卷含详解含答案.docx
- 人教版高中历史高考总复习全册知识点考点梳理、重点题型分类巩固练习.doc
- 部编版语文小学二年级下册第六单元大单元教学教材分析集体备课.pptx
- 龙野一雄论经方证治:感冒与治疗详解(重发).pdf VIP
- 三氧化铬(铬酸酐)理化性质及危险特性表MSDS.doc VIP
- 试论数字检察院建设的整体构想.pdf VIP
- ABB智能定位器TZIDC说明书中文正式版.doc
- 人教版劳动教育三年级下册全册教学设计.pdf VIP
- 大学生职业规划大赛《播音与主持艺术专业》生涯发展展示PPT.pptx
- 幼儿园厨房设备配置清单.doc
文档评论(0)