- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]用C语言描述数据结1
用C语言描述数据结构
标签:C 数据结构 链表
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。/261469/49909
学好计算机,主要要从三个方面做起,其中,第一步就是要学好各种语言,这是第一步,对各种语言有一个大体的了解;然后就是数据结构了,它是计算机中的一门核心的课程,也是一门信息计算;在最后本人认为就是算法了,它也是这三部中最难得一步了,要学好计算机,做一名优秀的程序元,这三步是最基本的,然后再是在他们的基础上层层深入。
在过去的一年之中,我对计算机的语言有了一个大体的了解,在前一段时间,我自学了数据结构,下面,谈谈我自学的数据结构的看法,在接下来一段有人指点的时间里,再来纠正以前对数据结构的错误看法。
数据结构是一个比较抽象的东西,他的任务是从各种实际的问题中归纳,抽象出个对象的特征,对象之间的相互关系,在选择合适的数据结构来组织,、储存和选择相应的算法。其中,最重要的还是一种抽象思维的转换,需要有一种归纳的思维,在初学的时候,我选择了在理解的基础上背一些比较典型的数据结构,比如:线性表,队,饯的储存方法等,最后发现一些其他的东西也可以类似。
用C语言描述数据结构可以分为以下几部分:线性表,队,饯,广义表,然后是树,图,最后还有递归,串,查找,排序。其中较为典型的例子有走迷宫,汉诺塔,出入队列哈夫曼编码等。
现行表示具有相同特征的数据元素的一个有限序列,储存方式有两种:顺序储存——顺序表,链式储存——链表。
?(一)顺序表储存结构,用C语言来运行各个基本运算的分类:
Typedef char ElemType????????? /*将字符性重新用ElemType来定义*/
#define MaxSize ?99?????????? /*用宏定义来定义MaxSize*/
Typedef struct
{
ElemType elem[MaxSize];????? /*定义一种为SqList的结构体类型*/
Int length;
}SqList;
(1)??? 初始化线性表
Void InitList(SqList *L)???? /*将L定义为SqList类型*/
{
L=(Sqlist?*)malloc(sizeof(SqList));?? /*在内存的动态区分配一个长度为n个
L-length=0;????????????????????????? 长为sizeof的连续空间*/
}
(2)??? 销毁线性表
??????? Void DestroyList(SqList *L)
{
Free(L);????????????????????????? /*释放L的储存空间*/
}
(3)??? 判断线性表是否为空
Int ListEmpty(SqList *L)
{
Return(L-length==0);
}
(4)??? 求线性表的长度
Int ListLength(SqList *L)
{
Return(L-length);
}
(5)??? 输出线性表
Void Displist(SqList *L)
{
int i;
if(ListEmpty(L))
?? return;
for(i=0;iL-length;i++;)
printf(“%c,”L-elem[i]);
printf(“\n”);
}
(6)??? 求线性表中某个数据元素得值
比如求线性表的第i个元素的值e
int GetElem(SqList *L,int i,Elemtype e)???? /*线性表L的第i个元素的值e*/
{
If(i1||iL-length)
?Return 0;
else
????? {
?????? e=L-elem[i-1];
?????? return 1;
}?????? ?????????????????????????????????????????????????????????????????????????????????????????????????
(7)??? 按元素值查找(查找第一个与元素值相同的元素的位置)
int Locateelem(SqList *L,Elemtype e)
{
?????? ?int i=0;
?????? ?while(iL-lengthL-elem[i]!=e)????? /*i的值存在的范围*/
????????????? ?i++;
?????? ?if(i=L-length)
????????????? ?return 0;
?????? ?else
????????????? ?return i+1;
}
(8)??? 插入数据元素
?int ListInsert(SqList *L,
您可能关注的文档
- [工学]国际企业布局半导体照明产业的战略分析.doc
- [工学]园林工程技术102班团课上报材料.doc
- [工学]园林工程资料报验表格.doc
- [工学]国际贸易复习思考题.doc
- [工学]土木工程06级结构力学试卷.doc
- [工学]在VB中对数据库和串口操作的实现.pdf
- [工学]地下工程课程设计计算书-范例_隧道设计.doc
- [工学]回归分析.ppt
- [工学]地质学与地貌学范围.doc
- [工学]土木工程力学本形成性考核册答案.ppt
- 五年级英语课堂互动活动计划.docx
- 高校教师资格证之《高等教育法规》能力提升B卷题库及答案详解【历年真题】.docx
- 高校教师资格证之《高等教育法规》能力提升B卷题库及答案详解参考.docx
- 高校教师资格证之《高等教育法规》能力提升B卷题库及答案详解【全国通用】.docx
- 高校教师资格证之《高等教育法规》能力提升B卷题库及答案详解【有一套】.docx
- 高校教师资格证之《高等教育法规》能力提升B卷题库及完整答案详解一套.docx
- 高校教师资格证之《高等教育法规》能力提升B卷题库及答案详解【各地真题】.docx
- 高校教师资格证之《高等教育法规》能力提升B卷题库及答案详解【名师系列】.docx
- 高校教师资格证之《高等教育法规》能力提升B卷题库及答案详解1套.docx
- 高校教师资格证之《高等教育法规》能力提升B卷题库及参考答案详解(综合题).docx
最近下载
- 农庄小能手(积肥)(教学设计)-四年级下册劳动教育“小农庄”(校本课程).docx VIP
- 世界上最棒的礼物幼儿园儿童故事绘本PPT课件.pptx VIP
- 幼儿园故事《世界上最棒的礼物》绘本故事PPT课件.pptx VIP
- 幼儿园故事《世界上最棒的礼物》绘本故事PPT课件.pptx VIP
- 中国石化品牌管理手册解读(适用业务简单的单位).pptx
- 世界上最棒的礼物幼儿园儿童故事绘本PPT课件.pptx VIP
- 酒店管理物业 物业消防设施月度维保检查记录表——集团连锁酒店管理公司(叶予舜).docx VIP
- 室内分布通信系统工程施工组织设计方案.docx
- 北师大版2024年数学七年级下册期末模拟培优卷(含答案).docx VIP
- 铁路防洪重大风险分析与管控措施.pdf VIP
文档评论(0)