- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构C语言实践方法.pdf
声明:本方法只经过本人测试有效,未经他人验证。使用时出现任何意外,请自行处理。
C 语言数据结构实践方法
首先得有一个能建立、编译C 语言工程的IDE ,这里采用的wxDev-C++ ,因为它用来
学习 C 或 C++很方便,可以直接编译源文件而不需要建立工程,这对于一些小的控制台程
序来说,极其方便,而且编译后只生成exe 文件,其他中间过程文件会自动清除。而且它是
免费的,可以直接去官方网站下载,不需要没钱的时候到处去找盗版。
数据结构的书基本都是大同小异的,而且里面的代码,基本都是高精度伪代码,很少有
能直接用的,而且,最麻烦的是,它是一段一段的。因为它是按照一个一个操作的方法来讲
的。我们现在就研究怎么利用这一小段一小段的代码组成程序。下面以最简单的单链表的顺
序存储来说明。
如何把伪代码修改成准确无误的程序代码,就需要你的语法功夫了。这里只讲如何利用
那一小段一小段的程序。因为其他的内容,别的程序设计的书上都讲述的很详细,唯独这个
多文件编译却没有很详细的叙述,几乎都是寥寥几句。看样子,这些内容是高手不需要,新
手也不需要,唯独那些孤独的、默默的、业余时间学习C 的、进阶中的人才会碰到吧?
首先是头文件。为了写头文件,我们就找到IDE 的安装位置,里面肯定有include 文件
夹。我们先看看别人的头文件是怎么写的。这个是wxDev-C++ 的stdio.h 头文件的前两句和
最后一句。
#ifndef _STDIO_H_
#define _STDIO_H_
……
#endif
这个是防止头文件重复包含的时候产生重定义。反正就是加这么三行,那么我们就按着
个方式写头文件:main.h 。
#ifndef _MAIN_H_
#define _MAIN_H_
// 函数的头文件
#include stdio.h
#include stdlib.h
/**************************************************************
*下面的内容熟悉么?是严蔚敏的《数据结构(C 语言版)》。
*其实,我觉得还不如说是C++版的呢,里面函数参数全是引用,而不是指针
*别管咋样,书买了,就将就学吧。
*文件名:main.h
*************************************************************/
// 函数结果状态码
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
//Status 是函数的类型,其值是函数结果的状态码
1 / 6
声明:本方法只经过本人测试有效,未经他人验证。使用时出现任何意外,请自行处理。
typedef int Status;
typedef int ElemType; //定义数据元素类型为int
typedef struct SqList{
ElemType elem;//这里没有使用指针。若使用指针,还得给这个元素分配内存。
int length;
struct SqList *next;
}SqList;//定义链表结构
#endif
这个就是主要的头文件,因为链表的结构定义和其他一些常量、类型定义都在这里。以
后我们都定义和函数所在的C 文件同名的头文件。
我们先看链表的初始化。
#includeinitlist.h
/**********************************************************************
* 因为这个文件名是:initlist.c
*所以就先包含了initlist.h 头文件,我们先实现函数,再定义头文件
*和书上的有点不一样是吧?原理一样,结构也类似。
**********************************************************************/
Status InitList_Sq(SqList *L){
//构造一个空的线性表
L= (SqList * )malloc(sizeof(SqList));
if(L
原创力文档


文档评论(0)