用C语言描述数据结构

学好计算机,主要要从三个方面做起,其中,第一步就是要学好各种语言,这是第一步,对各种语言有一个大体的了解;然后就是数据结构了,它是计算机中的一门核心的课程,也是一门信息计算;在最后本人认为就是算法了,它也是这三部中最难得一步了,要学好计算机,做一名优秀的程序元,这三步是最基本的,然后再是在他们的基础上层层深入。

在过去的一年之中,我对计算机的语言有了一个大体的了解,在前一段时间,我自学了数据结构,下面,谈谈我自学的数据结构的看法,在接下来一段有人指点的时间里,再来纠正以前对数据结构的错误看法。

数据结构是一个比较抽象的东西,他的任务是从各种实际的问题中归纳,抽象出个对象的特征,对象之间的相互关系,在选择合适的数据结构来组织,、储存和选择相应的算法。其中,最重要的还是一种抽象思维的转换,需要有一种归纳的思维,在初学的时候,我选择了在理解的基础上背一些比较典型的数据结构,比如:线性表,队,饯的储存方法等,最后发现一些其他的东西也可以类似。

用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);
}

时间: 2024-10-28 01:08:12

用C语言描述数据结构的相关文章

《数据结构与算法:Python语言描述》一第1章 绪论

第1章 绪论 作为基于Python语言的"数据结构与算法"教程,本章首先讨论一些与数据结构和算法有关的基础问题,还将特别关注Python语言的一些相关情况. 1.1计算机问题求解 使用计算机是为了解决实际问题.计算机具有通用性,其本身的功能很简单,就是能执行程序,按程序的指示完成一系列操作,得到某些结果,或者产生某些效果.要想用计算机处理一个具体问题,就需要有一个解决该问题的程序.经过长期努力,人们已经为各种计算机开发了许多有用的程序.在面对一个需要解决的问题时,如果恰好有一个适用的程

推荐一本用C#语言描述的数据结构

问题描述 我搜索了很多,不过C#语言描述的数据结构都没有找到一本.

《数据结构与算法:Python语言描述》一1.3算法和算法分析

1.3算法和算法分析 本节集中讨论算法的问题,特别是算法的性质及其分析技术. 1.3.1问题.问题实例和算法 在考虑计算问题时,需要清晰地区分问题.问题实例和算法三个概念,并理解它们之间的关系,这就是本小节讨论的内容.三个基本概念考虑一个计算问题时,需要注意到三个重要概念:问题:一个问题W是需要解决(需要用计算求解)的一个具体需求.例如判断任一个正整数N是否为素数,求任一个方形矩阵的行列式的值等.虽然可以严格定义"问题"的概念,但在这里还是想依靠读者的直观认识.总而言之,现实世界中存在

《数据结构与抽象:Java语言描述(原书第4版)》一P.4.3 统一建模语言

P.4.3 统一建模语言 图P-4中的用例图是更强大表示法的一部分,这个表示法称为统一建模语言(Unified Modeling Language,UML).设计人员使用UML来说明软件系统中必需的类及它们的关系.UML能给出复杂系统的整体视图,比用自然语言或程序设计语言描述更有效.例如,英语可能有二义性,而Java代码提供更多的细节.给出明确的类之间的交互图,是UML的强项之一.除了用例图之外,UML还能提供类图,类图将每个类的描述放在类似于CRC卡的方框中.方框内包含类名.它的属性(attr

《面向对象设计实践指南:Ruby语言描述》目录—导读

内容提要 面向对象设计实践指南:Ruby语言描述 本书是对"如何编写更易维护.更易管理.更讨人喜爱且功能更为强大的Ruby应用程序"的全面指导.为帮助读者解决Ruby代码难以更改和不易扩展的问题,作者在书中运用了多种功能强大和实用的面向对象设计技术,并借助大量简单实用的Ruby示例对这些技术进行全面解释. 全书共9章,主要包含的内容有:如何使用面向对象编程技术编写更易于维护和扩展的Ruby代码,单个Ruby类所应包含的内容,避免将应该保持独立的对象交织在一起,在多个对象之间定义灵活的接

c语言基础-数据结构C语言版二叉树的问题。

问题描述 数据结构C语言版二叉树的问题. strong text #include "stdio.h" #include "malloc.h" #include "stdlib.h" #include "conio.h" #define stacksize 100 #define DataType char //便于后期修改.可以直接去修改char 类型来达到快速的修改,在程序长的情况下. typedef struct nod

关于如何把c语言的数据结构改成c语言疏忽

问题描述 关于如何把c语言的数据结构改成c语言疏忽 引用标志符(&)在C里不支持,那应该怎么改才能在c里使用Status InitList_Sq( SqList &L ) 解决方案 数据结构之希尔排序(C语言)c语言数据结构之链表 解决方案二: Status InitList_Sq( SqList *L ) 解决方案三: 如果SqList是一个指针,那么L就是指针的指针,改变这个指针的值,就可以在内外传值

数据结构 算法 书籍-c语言学习数据结构和算法有什么好书推荐吗?

问题描述 c语言学习数据结构和算法有什么好书推荐吗? c语言学习数据结构和算法有什么好书推荐吗? 求大神告知一下,谢谢了 解决方案 学习数据结构的好书哪位大哥介绍几本好书? 关于学习数据结构与算法的书 解决方案二: 刘汝佳的算法竞技入门经典,白色的 解决方案三: 数据结构 http://wenku.baidu.com/link?url=aFQ-ayTp5v3G0VJS1RXFfa-1a4cSm3TwUWD22pDUFqp6vX7CvSuepfFgePJnO8ZJcxMItGpbA3Y5KZthc

数据结构c语言-用C语言解决数据结构的背包问题

问题描述 用C语言解决数据结构的背包问题 求大神解答-在此谢谢比较急-希望大家能够帮帮忙哇-这是我们的课程设计不怎么会 解决方案 http://blog.csdn.net/tjyyyangyi/article/details/7929665http://wenku.baidu.com/link?url=SMePd-6RP5ck_9NV8-AOr2tFWkewb3ZieCwK7r8_tUbWysUrlJUvzRdr6as64gOImTYXY6ZW9fQKxtiitaQDwQwjrKJIB6j3ZF