实用数据结构实例Word格式文档下载.docx
- 文档编号:22339953
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:72
- 大小:25.38KB
实用数据结构实例Word格式文档下载.docx
《实用数据结构实例Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《实用数据结构实例Word格式文档下载.docx(72页珍藏版)》请在冰豆网上搜索。
\n请输入你要找的钥匙的教室号:
number);
if(a[i]==number)
请在第%d个钉子上取钥匙"
i+1);
break;
if(i==amount)
抱歉!
没有找到对应教室的钥匙!
}
例1.2
#include"
#defineU7
#defineV11
#defineW8
voidstore(inta[U][V][W]);
voidlookfor(inta[U][V][W]);
voidmain()
{staticinta[U][V][W];
store(a);
lookfor(a);
voidstore(inta[U][V][W])
{intamount,i,number,k,u,v;
\n请输入钥匙的总数:
{printf("
);
u=number/1000;
v=(number-u*1000)/100;
\nu=%dv=%d"
u,v);
for(k=1;
k<
=W;
k++)
if(a[u][v][k]==0)
{a[u][v][k]=number;
voidlookfor(inta[U][V][W])
{inti,number,k,u,v;
=W&
&
a[u][v][k]!
=0;
{if(a[u][v][k]==number)
请在第%d个抽屉的第%d格子中取第%d个钥匙"
u,v,k);
if(k==W||a[u][v][k]==0)
notfound!
例1.3
math.h"
#defineSIZE100
intprime1(inta[],intn)
{
inti,j,k=0,flag;
for(i=2;
=n;
{
flag=1;
for(j=2;
j<
=sqrt(i)&
flag;
j++)
if(i%j==0)
flag=0;
if(flag==1)
{
a[k]=i;
k++;
}
returnk;
inti,k,a[SIZE/2];
k=prime1(a,SIZE);
\n"
=k-1;
printf("
%-4d"
a[i]);
例1.4
#include"
voidprime2(inta[],intn)
{inti,j;
a[i]=i;
=sqrt(n);
for(j=i+1;
if(a[i]!
=0&
a[j]%a[i]==0)
a[j]=0;
{inti,a[SIZE];
prime2(a,SIZE);
=SIZE;
if(a[i]!
=0)
例1.61.71.8
intguess1(intx)
{inti;
for(i=1;
=100;
if(i==x)
returni;
intguess2(intx)
{inti=0,low=1,high=100,middle;
do
{i++;
middle=(low+high)/2;
if(middle==x)
elseif(middle<
x)
low=middle+1;
else
high=middle-1;
}while
(1);
{
\nguess1i=%d"
guess1(67));
\nguess2i=%d"
guess2(67));
guess1(15));
guess2(15));
例1.9
Max1(inta[],intsize)
{inti,max=a[0];
=size;
if(a[i]>
max)
max=a[i];
returnmax;
Max2(inta[],intsize)
{inti,max_loca=0;
a[max_loca])
max_loca=i;
returnmax_loca;
{intb[]={10,20,30,40,50,60,70,80,90,100,2,3,5,9,40},size,x,y;
x=Max1(b,10);
y=Max2(b,10);
%d,%d\n"
x,y);
}
第二章
例2.1
#defineMAXSIZE20
#defineOverFlow-1
#defineOK1
#defineError-1
voidInit_SeqList(int*Length_pointer)/*构造一个空表*/
{*Length_pointer=0;
intInsert_Last(intElement[],int*Length_pointer,intx)/*插入一个元素(尾插)*/
{if(*Length_pointer==MAXSIZE-1)
{printf("
表满"
returnOverFlow;
else
{Element[*Length_pointer]=x;
(*Length_pointer)++;
returnOK;
intLocation_SeqList(intElement[],intLength,intx)/*查找指定元素*/
{inti=0;
while(i<
Length&
Element[i]!
=x)
i++;
if(i==Length)
return-1;
elsereturni+1;
intDelete_SeqList(intElement[],int*Length_pointer,inti)
{intj;
if(i<
1||i>
*Length_pointer)
不存在第i个元素"
returnError;
for(j=i-1;
=*Length_pointer-1;
Element[j]=Element[j+1];
(*Length_pointer)--;
voidShow_SeqList(intElement[],intLength)
if(Length==0)
空表(NULL)!
for(j=0;
Length;
%d"
Element[j]);
voidSetNull_SeqList(int*Length_pointer)
{intx,i,loca;
intElement[MAXSIZE];
/*存储线性表的数据元素*/
intLength;
/*存储线性表的长度*/
Init_SeqList(&
Length);
/*构造一个空表*/
1---插入一个元素(Insert)\n"
2---查询一个元素(Locate)\n"
3---删除一个元素(Delete)\n"
4---显示所有元素(Show)\n"
5---退出\n"
i);
switch(i)
{case1:
请输入要插入的分数:
x);
if(Insert_Last(Element,&
Length,x)!
=OK)
printf("
插入失败\n"
break;
case2:
请输入你要查询的分数\n"
scanf("
loca=Location_SeqList(Element,Length,x);
if(loca!
=-1)
查找成功!
存储的位置:
loca);
elseprintf("
查找失败!
case3:
请输入要删除的分数:
if(Delete_SeqList(Element,&
Length,loca)!
printf("
删除失败\n"
case4:
Show_SeqList(Element,Length);
break;
case5:
default:
错误选择!
请重选:
}while(i!
=5);
SetNull_SeqList(&
2.3.2线性表使用结构体的算法实现
#defineMaxSize20
typedefintElemType;
typedefstruct/*数据定义*/
{ElemTypeElement[MaxSize];
/*线性表的长度*/
}SeqList;
voidInit_SeqList(SeqList*L_pointer)/*构造一个空表*/
{L_pointer->
Length=0;
intInsert_Last(SeqList*L_pointer,intx)/*插入一个元素(尾插)*/
{if(L_pointer->
Length==MaxSize-1)
{L_pointer->
Element[L_pointer->
Length]=x;
/*表尾插入一个元素*/
(L_pointer->
Length)++;
/*线性表长度加1*/
/*插入成功,返回OK*/
intLocation_SeqList(SeqList*L_pointer,intx)/*查找指定元素*/
L_pointer->
if(i==L_pointer->
Length)/*查找失败*/
/*查找成功,返回x的逻辑位置*/
intDelete_SeqList(SeqList*L_pointer,inti)/*删除指定元素*/
Length)
=L_pointer->
Length-1;
L_pointer->
Element[j]=L_pointer->
Element[j+1];
/*数据向左移动*/
Length)--;
/*长度减1*/
voidShow_SeqList(SeqList*L_pointer)/*遍历线性表*/
if(L_pointer->
Length==0)
j++)/*依次输出显示*/
L_pointer->
Element[j]);
voidSetNull_SeqList(SeqList*L_pointer)/*清空线性表*/
SeqListList;
List);
if(Insert_Last(&
List,x)!
loca=Location_SeqList(&
List,x);
if(Delete_SeqList(&
List,loca)!
Show_SeqList(&
/*清空线性表*/
程序2.3
string.h"
typedefcharElemType[10];
intInsert_Last(SeqList*L_pointer,ElemTypex)/*插入一个元素(尾插)*/
{strcpy(L_pointer->
Length],x);
intLocation_SeqList(SeqList*L_pointer,ElemTypex)/*查找指定元素*/
strcmp(L_pointer->
Element[i],x)!
strcpy(L_pointer->
Element[j],L_pointer->
Element[j+1]);
puts(L_pointer->
{ElemTypex;
inti,loca;
2---查询一个元素(Find)\n"
请输入要插入的名子:
%s"
x);
请输入你要查询的名子\n"
请输入要删除的名子:
程序2.13顺序查找
#defineMaxSize
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实用数据结构 实例 实用 数据结构