查找-C语言课程设计.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
#include stdlib.h #include time.h #include stdio.h #include conio.h #define INFMT %d #define OUTFMT %d #define MAX_LENGTH 100 #define BOOL int #define TRUE 1 #define FALSE 0 #define LEN 10000 typedef struct BSTNode { int data; struct BSTNode *lchild, *rchild; } BSTNode, *BSTree; typedef struct { int key; }Elemtype; typedef struct { Elemtype elem[MAX_LENGTH]; // 0号单元空 int length; }SSTable; int Search_Seq(SSTable ST,int key) { int i; ST.elem[0].key = key; for(i=ST.length;(ST.elem[i].key !=key) ;--i); return i; } int Search_Bin(SSTable ST,int key) { int mid,low,high; low = 1;high = ST.length; while(low =high) { mid = (low+high)/2; if(key ==ST.elem[mid].key) return mid; else if(keyST.elem[mid].key) high = mid; else low=mid+1; } return 0; } void Insert(BSTree *tree, int item) { BSTree node = (BSTree)malloc(sizeof(BSTNode)); node-data = item; node-lchild = node-rchild = NULL; if (!*tree) *tree = node; else { BSTree cursor = *tree; while (1) { if (item cursor-data) { if (NULL == cursor-lchild) { cursor-lchild = node; break; } cursor = cursor-lchild; } else { if (NULL == cursor-rchild) { cursor-rchild = node; break; } cursor = cursor-rchild; } } } return; } BSTree Search(BSTree tree, int item) { BSTree cursor = tree; while (cursor) { if (item == cursor-data) return cursor; else if ( item cursor-data) cursor = cursor-lchild; else cursor = cursor-rchild; } return NULL; } void Inorder(BSTree tree) { BSTree cursor = tree; if (cursor) { Inorder(cursor-lchild); printf(OUTFMT, cursor-data); Inorder(cursor-rchild); } } void Cleanup(BSTree tree) { BSTree cursor = tree, temp = NULL; if (cursor) { Cleanup(cursor-lchild); Cleanup(cursor-rchild); free(cursor); } } void randnum(int *a, int s) { int i, j, mod = s * 10; srand(time(NULL)); for (i = 0; i s; ++i) { a[i] = rand() % mod + 1; for

文档评论(0)

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

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

1亿VIP精品文档

相关文档