- 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--
您可能关注的文档
最近下载
- 脑病科优势病种诊疗方案.doc VIP
- 初中数学知识点归纳总结(精华版)[共11页].doc VIP
- 新课程背景下语文核心素养落实的实践研究.docx VIP
- SY∕T 0043-2020 石油天然气工程管道和设备涂色规范(石油天然气).doc VIP
- VDA 6.3-2023 过程审核标准 第四版 中英文版(2-1).pdf
- 教材开发与编写作业指导书.doc VIP
- 2025年全国新高考地理真题试卷(广东卷)(Word版,含答案解析) .pdf VIP
- 方剂学(功效主治组成)表格.doc VIP
- 高中物理(人教版)精品教案:波的反射、折射和衍射教学设计.docx VIP
- Walkera华科尔无人机FCS-F8使用指南_CN_V1.2_2020.10.12(金属壳版).pdf
文档评论(0)