数据结构课程设计(8)

2019-05-18 21:29

int _tmain(int argc, _TCHAR* argv[]) {

int key; BSTree t;

printf(\创建二叉树:\\n\); createBST(t);

printf(\中序遍历二叉树:\);

InOrder(t);

printf(\输入你要删除结点的关键字:\\n\); scanf_s(\,&key); t=deleteBST(t,key); if(t==NULL)

printf(\对不起,你所删除的结点%d不存在!\\n\,key); else

printf(\成功删除结点%d.\\n\,key); printf(\中序遍历二叉树:\); }

InOrder(t); system(\) ; return 0;

24、设定哈希函数 H(key) = key MOD 11 ( 表长=11 ),输入一组关键字序列,根据线性探测

再散列解决冲突的方法建立哈希表的存储结构,显示哈希表,任意输入关键字,判断是否在哈希表中。

#include \ #include \ #include \ #include \

typedef struct {

typedef struct SQList {

void Insert(SQList &s , int i) {

int a = i % 11 ; if(s.elem[a].data == 0)

s.elem[a].data = i ; elemtype * elem ; }SQList ;

int data ; }elemtype ;

}

else { }

while(s.elem[a].data != 0) { }

s.elem[a].data = i ;

if(a == 11)

a = 1 ; a = a + 1 ; else

void Print(SQList s) { }

int Search(SQList s , int a) { }

int _tmain(int argc, _TCHAR* argv[]) {

SQList s ; int a ;

s.elem = (elemtype *)malloc(12*sizeof(elemtype)) ; for(int i = 1 ; i <= 11 ; i++)

s.elem[i].data = 0 ;

printf(\请依次输入要插入的数据:\) ; for(int i = 0 ; i < 11 ; i++) { }

scanf_s(\,&a) ; Insert(s , a) ;

for(int i = 1 ; i <= 11 ; i++)

if(a == s.elem[i].data)

return 1 ;

printf(\哈希表存储如下:\) ; for(int i = 1 ; i <= 11 ; i++) { }

printf(\,s.elem[i].data) ;

return 0 ;

}

Print(s) ; system(\) ; return 0;

排序

以下问题要求统一在一个大程序里解决。 25、折半插入排序 26、冒泡排序 27、快速排序

28、简单选择排序 29、归并排序 30、堆排序

#include \ #include \ #include \

typedef struct {

typedef struct SQList {

void Create(SQList &s) { }

void Print(SQList s) {

printf(\线性表输出如下:\\n\); printf(\请输入数字个数:\\n\) ; scanf_s(\,&s.len ) ;

s.elem = (elemtype *)malloc((s.len+1)*sizeof(elemtype)) ; printf(\请依次输入数字:\\n\) ; for(int i = 1 ; i <= s.len ; i++) { }

printf(\第%d个数字:\,i);

scanf_s(\,&(s.elem[i].data)) ; elemtype * elem ; int len ; int data ; }elemtype ;

}SQList ;

} { }

for(int i = 1 ; i <= s.len ; i++)

printf(\,s.elem[i].data) ;

void zheban(SQList &L)

int i,low,high,m,j; for(i=2;i<=L.len;++i) { }

L.elem[0]=L.elem[i]; low=1; high=i-1; while(low<=high) { }

for(j=i-1;j>=high+1;--j)

L.r[j+1]=L.r[j];//记录后移 L.r[high+1]=L.r[0];//插入

m=(low+high)/2;

if(L.elem[0].key

high=m-1; else low=m+1;

void 冒泡排序(SQList &s) { }

int i = s.len ; while(i > 1) { }

int last = 1 ;

for(int j = 1; j < i ; j++) { }

i = last ;

if(s.elem[j].data > s.elem[j+1].data) { }

s.elem[0] = s.elem[j+1] ; s.elem[j+1] = s.elem[j] ; s.elem[j] = s.elem[0] ; last = j ;

int Partition (SQList &s , int low , int high) { }

void 快速排序(SQList &s , int i , int j) { }

int SelectMindata(SQList s , int i) { }

void 简单选择排序(SQList &s) {

for(int i = 1 ; i < s.len ; i++) {

int j = SelectMindata(s,i) ; int MK = i ;

for(int j = i ; j <= s.len ; j++) { }

return MK;

if(s.elem[j].data < s.elem[MK].data)

MK = j ;

if(i < j) { }

int pivotloc = Partition(s,i,j) ; 快速排序(s , i , pivotloc-1) ; 快速排序(s , pivotloc+1 , j) ; s.elem[0]=s.elem[low] ;

int pivotloc = s.elem[low].data; while(low

s.elem[low] = s.elem[0] ; return low ;

while(low < high&&s.elem[high].data >= pivotloc)

high-- ;

s.elem[low] = s.elem[high];

while(low < high&&s.elem[low].data <= pivotloc)

low++ ;

s.elem[high] = s.elem[low] ;


数据结构课程设计(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:一汽实习报告讲解 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: