数据结构算法编程实现样例详解.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构算法编程实现样例详解

数据结构算法 编程实现样例详解 请仔细阅读,建议打印。注意比较细节的差异,关于指针问题请看 “难点答疑”。 编程步骤 程序结构框架 样例源代码清单(以顺序表插入功能为例) 一: 编写公共头文件 引用的库文件 定义系统常量 建议文件名前加姓名: sjCommon.h #include stdio.h #include stdlib.h #include malloc.h #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 二: 编写存储结构头文件 定义元素类型 定义结构体 顺序:sjSeqList.h 链式:sjLinList.h 顺序表的结构体 单链表的结构体 #define ElemType int #define MAXSIZE 10 typedef struct { ElemType elem[MAXSIZE]; int last; }SeqList; typedef char ElemType; typedef struct Node { ElemType data; struct Node * next; }Node, *LinkList; 标准的线性表、栈、队列、串的存储结构样例 顺序栈的结构体 顺序队列的结构体 #define Stack_Size 50 typedef struct { StackElementType elem[Stack_Size]; int top; }SeqStack; #define MAXSIZE 50 typedef struct { QueueElementType element[MAXSIZE]; int front; int rear; }SeqQueue; 顺序串的结构体 堆分配存储的串结构体 #define MAXLEN 40 typedef struct { char ch[MAXLEN]; int len; }SString; typedef struct { char *ch; int len; }HString; 自定义结构体样例 约瑟夫环结构体 城市坐标结构体 typedef struct data{ int num; //用于存放人的序号 int pwd; //用于存放密码 }typedata; typedef struct node{ typedata data; struct node *next; }YSFNode, *YSFLinkList; typedef struct CityNode { char name[10]; float x; float y; struct CityNode *next; }CityNode; 三: 编写实现所需功能的主程序 加载头文件 #include sjCommon.h #include sjSeqList.h 应用教材现有的数据结构算法1: 初始化顺序表 int InitList(SeqList *L,int r) /*顺序表初始化,输入r个元素*/ { L-last =r-1; printf(请输入线性表的%d个元素值:\n,r); for(int i=0; i=L-last; i++) { scanf(%d,L-elem[i]); } return(OK); } 应用教材现有的数据结构算法2: 在顺序表L中第i个数据元素之前插入一个元素e int InsList(SeqList *L,int i,ElemType e) { int k; if((i1) || (i L-last+2)) /*首先判断插入位置是否合法*/ { printf(插入位置i值不合法); return(ERROR); } if(L-last= MAXSIZE-1) { printf(表已满无法插入); return(ERROR); } for(k=L-last;k=i-1;k--) /*为插入元素而移动位置*/ L-elem[k+1]=L-elem[k]; L-elem[i-1]=e; /*在C语言数组中,第i个元素的下标为i-1*/ L-last++; return(OK); } 编写用户自定义算法: 输出顺序表中的所有元素 int DisplayList(SeqList *L) { for(int i=0; iL-last; i++) {

文档评论(0)

juhui05 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档