数据结构课本算法实现.doc

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
线性结构 一 类型定义 1 顺序表 # define MAXSIZE 100 typedef struct node typedef struct { ElemType data; { ElemType data [MAXSIZE]; struct node * next; int length; }SLink; }SqList; 2 单链表 3双链表 typedef struct node { ElemType data; struct node *prior,*next; }dlink; 二 基础要点 1单链表 2双链表 三 算法 1 删除顺序表中重复元素 void delsame( int A[], int count ) { int i, j, k; if( N 1 ) { j = 1; for( i =1; i N; i++ ) { k = 0; while( k j A[k] != A[i] ) k++; if( k = j ) A[j++] == A[i]; } A[j] == ‘\0’ } } 2 给无序表建有序索引表 typedef struct indexelem { KeyType key; //关键字 int sn; //序号 }IndexType; //索引项 IndexType idx[1...m]; //索引表 DataType data[1...m]; //原顺序表 for( i = 1; i =m; i++ ) { j = i - 1; while( j 0 idx[j].key data[i].key ) //把大于data[i].key的所有idx[j].key后移 { idx[j+1] = idx[j]; j--; } idx[j+1].key = data[i].key; //插入data[i].key至idx中,并记下其序号i idx[j+1].sn = i; } 3 逆置单链表 void reverse( LinkList H ) { SNode *p, *temp; P = H-next; H-next = NULL; while( p ) { temp = p; p = p-next; temp-next = H-next; H-next = temp; } } void reverse( LinkList H ) { SNode *p, *q, *temp; P = H-next; q = NULL; while( p ) { temp = p; p = p-next; temp-next = q; q = temp; } H-next = q; } 4拆分单链表 decompese( SNode *L,SNode *ha,SNode *hb,SNode *hc ) { SNode *temp,*p; p = L; ha = (SNode*)malloc(sizeof(SNode)); hb = (SNode*)malloc(sizeof(SNode)); hc = (SNode*)malloc(sizeof(SNode)); ha-next = ha; hb-next = hb; hc-next = hc; while( p ) { if( (p-data = ‘A’ p-data = ‘Z’)||(p-data = ‘a’ p-data = ‘z’) ) { temp = p; p = p-next; temp-next = ha-next; ha-next = temp;

文档评论(0)

***** + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档