数据结构课程设计报告docWord下载.docx

上传人:b****6 文档编号:19727950 上传时间:2023-01-09 格式:DOCX 页数:27 大小:112.83KB
下载 相关 举报
数据结构课程设计报告docWord下载.docx_第1页
第1页 / 共27页
数据结构课程设计报告docWord下载.docx_第2页
第2页 / 共27页
数据结构课程设计报告docWord下载.docx_第3页
第3页 / 共27页
数据结构课程设计报告docWord下载.docx_第4页
第4页 / 共27页
数据结构课程设计报告docWord下载.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

数据结构课程设计报告docWord下载.docx

《数据结构课程设计报告docWord下载.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计报告docWord下载.docx(27页珍藏版)》请在冰豆网上搜索。

数据结构课程设计报告docWord下载.docx

break;

\

if(pstr[i][0]!

=kaitou_x){

if(*(pjielong-1)==pstr[i][0]){

pjielong--;

return0;

运行结果:

二、方格问题

main()

{inti,n,g,j;

intf1[101]={0},f2[101]={0};

intf3[101];

scanf("

f1[100]=1;

f2[100]=3;

for(i=3;

=n;

i++)

{g=0;

for(j=100;

j>

=1;

j--)

{g=g+2*f1[j]+f2[j];

f3[j]=g%10;

g=g/10;

for(j=1;

j<

=100;

j++)

{f1[j]=f2[j];

f2[j]=f3[j];

j=1;

while(f3[j]==0)j++;

for(i=j;

printf("

f3[i]);

\n"

运行结果

二、FBZ串

inti,j,k,n,temp;

ints[1000][2];

charq[2000]={0};

temp=1;

k);

if(k==1)n=1;

else

for(i=2;

=k;

{

n=temp*2;

temp=n;

}

=n-1;

for(j=0;

scanf("

s[i][j]);

{if(s[i][j]==0)q[n*2+i*2+j]='

Z'

;

elseq[n*2+i*2+j]='

B'

{if((s[i][0]==s[i][1])&

&

(s[i][0]==0))

q[n+i]='

else

if((s[i][0]==s[i][1])&

(s[i][0]==1))

else

F'

}

for(j=n;

=2;

j=j/2)

for(i=0;

=j-1;

i=i+2)

{if((q[j+i]==q[j+i+1])&

(q[j+i]!

='

))

q[(j+i)/2]=q[j+i];

elseq[(j+i)/2]='

q[1]);

for(i=1;

=n*2-1;

i=i++)

{if(q[i]=='

printf("

%c%c"

q[i*2],q[i*2+1]);

getch();

}

四、分油

main()

intq[100][4]={0,0,0,0,10,0,0,0};

intj,front,rear,x10,x7,x3,y10,y7,y3,p,p1,i;

front=1;

rear=1;

p=1;

while(p)

{x10=q[front][0];

x7=q[front][1];

x3=q[front][2];

front++;

if((x10==5)&

(x7==5))p=0;

else{

if(x7<

7)

{y10=x10+x7-7;

y7=7;

y3=x3;

p1=1;

for(i=1;

=rear;

if((y10==q[i][0])&

(y7==q[i][1]))p1=0;

if(p1==1)

{rear++;

q[rear][0]=y10;

q[rear][1]=y7;

q[rear][2]=y3;

q[rear][3]=front-1;

if(x3<

3)

{y10=x10+x3-3;

y7=x7;

y3=3;

{rear++;

if(x7>

0)

{y10=x10+x7;

y7=0;

y3=x3;

{rear++;

if((x7>

0)&

(x3<

3))

{y10=x10;

if(x7+x3>

{y7=x7+x3-3;

y3=3;

else{y7=0;

y3=x7+x3;

if(x3>

{y10=x10+x3;

y3=0;

if((x7<

7)&

(x3>

0))

{y7=7;

y3=x7+x3-7;

else

{y7=x7+x3;

y3=0;

front--;

for(j=1;

=front;

{

printf("

%d%d%d\n"

q[j][0],q[j][1],q[j][2]);

五、关键点和桥

#include"

stdio.h"

intg[10][10]={0,0,0,0,0,0,0,0,0,0,

0,0,1,1,1,0,0,0,0,0,

0,1,0,1,0,0,1,0,0,0,

0,1,1,0,1,1,0,0,0,0,

0,1,0,1,0,1,0,0,0,0,

0,0,0,1,1,0,1,0,0,0,

0,0,1,0,0,1,0,1,0,0,

0,0,0,0,0,0,1,0,1,0,

0,0,0,0,0,0,0,1,0,1,

0,0,0,0,0,0,0,0,1,0};

intg0[10][10]={0};

inti,j,x,front,rear,s,n;

inta,b;

intflag[10]={0};

intq[10];

n=9;

关键点为:

for(i=5;

i++)//关键点检索

g0[10][10]=g[10][10];

g0[i][i+1]=0;

g0[i+1][i]=0;

flag[i]=1;

q[1]=i;

front=1;

rear=1;

while(front<

=rear)

{

x=q[front];

front++;

for(j=1;

if((flag[j]==0)&

(g[x][j]==1))

{

rear++;

q[rear]=j;

flag[j]=1;

}

if(rear<

=n-1)

{printf("

%d"

i);

}//广度优先循环搜索判断关键点,不符合条件记录输出。

printf("

桥为:

for(a=6;

a<

a++)//桥检索

g0[10][10]=g[10][10];

g0[a][a+1]=0;

g0[a+1][a]=0;

flag[a]=1;

q[1]=a;

front=1;

rear=1;

while(front<

for(b=1;

b<

b++)

if((flag[b]==0)&

(g[x][b]==1))

q[rear]=b;

flag[b]=1;

}

n-1)

%d——%d"

a,a+1);

getch();

关键点为:

678

6——77——88——9

六、矩阵

inti,j,n,k,n1,s,s0,s1,x,y,p;

intg[20][20];

intb[20];

k=0;

{k++;

for(j=i;

n-i;

{g[i][j]=k;

g[j][i]=k;

for(j=n-i-1;

i;

{g[n-i-1][j]=k;

g[j][n-i-1]=k;

{for(j=0;

j++)printf("

%d"

g[i][j]);

s0=0;

n1=n+n-2;

i++)b[i]=0;

for(i=n;

n+n-1;

i++)b[i]=1;

while(b[0]==0)

{s1=1;

x=1;

y=1;

=n1;

if(b[i]==0)x++;

elsey++;

s1=s1+g[x][y];

p=1;

j=2;

while((p)&

(j<

s1))

{if(s1%j==0)p=0;

elsej++;

if(p)s0++;

if(b[s1])s0++;

j=n1;

while(b[j]==0)j--;

s1=0;

while(b[j]==1)

{s1++;

b[j]=0;

j--;

b[j]=1;

s1--;

k=n;

=s1;

b[k]=1;

k--;

s0);

七、骑士问题

{inti,k,m,n,top,x,y,w,q,x0,y0;

intdx[9]={0,1,2,2,1,-1,-2,-2,-1};

intdy[9]={0,-2,-1,1,2,2,1,-1,-2};

intstack[1000];

intg[100][100]={0};

%d,%d,%d"

n,&

x0,&

y0);

while((n%2==1)&

((x0+y0)%2==1))

{printf("

inputerror"

g[x0][y0]=1;

x=x0;

y=y0;

top=0;

while(top<

n*n-1)

if(k>

9)

{k=stack[top];

top--;

g[x][y]=0;

x=x-dx[k];

y=y-dy[k];

{w=x+dx[k];

q=y+dy[k];

if((w>

=1)&

(w<

=n)&

(q>

(q<

(g[w][q]==0))

{x=w;

y=q;

top++;

g[x][y]=1;

stack[top]=k;

k=0;

%d%d"

x,y);

=top;

{x=x+dx[stack[i]];

y=y+dy[stack[i]];

--%d%d"

八、士兵排队

{intx,y,i,i1,j,k,s,s1,n,p,j1,j2;

intq[100];

intg[7][7]={0,0,0,0,0,0,0,

0,0,0,0,0,0,1,

0,0,0,0,1,1,0,

0,0,0,0,0,0,0,

0,1,0,0,0,1,0,

0,1,0,1,0,0,1,

0,0,0,1,0,0,0};

n=6;

k=9;

j1=1;

(j1<

=n))

{s=0;

{s1=0;

for(j=1;

j++)s1=s1+g[j][i];

if(s1==0)

{s++;

j2=i;

if(s==0)

error1"

p=0;

elseif(s>

1)

error2"

else{q[j1]=j2;

j1++;

i++)g[i][j2]=1;

i++)g[j2][i]=0;

if(p)for(i=1;

q[i]);

九、HUFFMAN树编码

stdlib.h"

intmain()

inti,i0,i1,j,j1,j0,n,n1,n2,cmin1,cmin,s,k,p;

charstr[30]={"

wabcddeacefgfg"

};

inttree[52][13]={0};

inth[27]={0};

intd[27];

intcode[27][21];

str[0]=13;

p);

=str[0];

h[str[i]-96]++;

n=0;

=26;

if(h[i]>

n++;

tree[n][1]=h[i];

d[n]=i;

if(n<

=p){s=1;

n1=p;

else

{n1=n-p;

n2=n1%(p-1);

if(n2>

0)n1=n+(p-1)-n2;

s=1+(n1-p)/(p-1);

n2=n1;

=s;

n2++;

cmin1=0;

=p;

{cmin=1000;

for(k=1;

k<

n2;

k++)

if((tree[k][0]==0)&

(tree[k][1]<

cmin))

{j1=k;

cmin=tree[k][1];

cmin1=cmin1+cmin;

tree[n2][2+p]=j1;

tree[j1][2]=n2;

tree[j1][0]=1;

tree[n2][1]=cmin1;

for(k=0;

=20;

code[i][k]=-1;

{i0=i;

i1=tree[i][2];

k=21;

while(i1!

=0)

{k--;

for(j1=3;

j1<

3+p;

j1++)

if(tree[i1][j1]==i0)code[i][k]=j1-3;

i0=i1;

i1=tree[i1][2];

d[i]+96);

k=1;

while(code[i][k]==-1)k++;

for(j1=k;

code[i][j1]);

getchar();

system("

PAUSE"

十、最长公共子串

{inti,j,cmax,j1;

chara[100]={"

wabcdefghijk"

charb[100]={"

wabcyefghi"

charg[100][100]={0};

a[0]=11;

b[0]=9;

cmax=0;

=a[0];

=b[0];

if(a[j]==b[i])

{g[i][j]=g[i-1][j-1]+1;

if(g[i][j]>

cmax)

{j1=j;

cmax=g[i][j];

g[i][j]=0;

%d\n"

cmax);

for(i=j1-cmax+1;

=j1;

a[i]);

Efghi

十一、迷宫问题

#defineM5//行数

#defineN7//列数

intk,top,x,y,w,q,p,i;

intdx[9]={0,1,1,1,0,-1,-1,-1,0};

intdy[9]={0,-1,0,1,1,1,0,-1,-1};

//charb[100];

//chara[100];

charstack[100];

//栈的最多储存元素

intflag[20][20]={0};

intcount;

//计数

intg[M+1][N+1]={0,0,1,1,1,1,0,0,

1,0,1,1,0,0,0,1,

1,0,0,1,1,1,0,1,

0,0,1,1,1,1,0,1,

0,1,0,1,1,1,0,0,

1,1,1,0,0,0,0,1};

g[0][0]=1;

//从第1行第1列开始

k=0;

x=0;

y=0;

while(p)

k++;

if(k>

8)//八个方向

{k=stack[top];

top--;

g[x][y]=0;

x=x-dx[k];

y=y-dy[k];

{w=x+dx[k

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 其它语言学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1