
正文
c语言库函数数据结构 c语言库函数的含义
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言数据结构
分类: 电脑/网络 程序设计 其他编程语言
问题描述:
1、具体要求:以下算法是一个迷宫的算法,在走迷宫过程中用到了队列,请理解以下算法,并将算法的实现过程、子函数的作用以及测试数据写在报告纸上。
#include"stdio.h"
#include"stdlib.h"
#define m 4
#define n 4
struct stype
{int x,y,pre;
}sq[400];
int mg[m+2][n+2];
int zx[9],zy[9];
void printlj(int rear)
{int i;
i=rear;
do
{printf("(%d,%d)",sq[i].x,sq[i].y);
i=sq[i].pre;
}while(i!=0);
}
void mglj()
{int i,j,x,y,front,rear,find,v;
sq[1].x=1;sq[1].y=1;sq[1].pre=0;find=0;
front=rear=1; mg[1][1]=-1;
while(front=rear!find)
{x=sq[front].x;
y=sq[front].y;
for(v=1;v=8;v++)
{i=x+zx[v];
j=y+zy[v];
if(mg[i][j]==0)
{rear++;
sq[rear].x=i;
sq[rear].y=j;
sq[rear].pre=front;
mg[i][j]=-1;
}
if(i==mj==n)
{printlj(rear);
find=1;
}
}
front++;
}
if(!find) printf("no way\n");
}
void main()
{int i,j;
for(i=1;i=m;i++)
for(j=1;j=n;j++)
scanf("%d",mg[i][j]);
for(i=0;i=m+1;i++)
{mg[i][0]=1;mg[i][n+1]=1;
}
for(j=0;i=n+1;i++)
{mg[0][j]=1;mg[m+1][j]=1;
}
zx[1]=-1;zx[2]=-1;zx[3]=0;zx[4]=1;
zx[5]=1;zx[6]=1;zx[7]=0;zx[8]=-1;
zy[1]=0;zy[2]=1;zy[3]=1;zy[4]=1;
zy[5]=0;zy[6]=-1;zy[7]=-1;zy[8]=-1;
mglj();
}
2、具体要求:背包问题是算法中一个经典的问题,请查找相关资料对它进行描述,并且利用C语言实现该算法。附代码。
解析:
第一个问题是个迷宫问题.很多地方都有答案吧
思路就是往前后左右四个方格前进,进到新的方格中的时候再前后左右...这样递归下去.如果遇到不可走的路,就把它从队列里删除.直到找到出口为止.
以前写过具体的算法.但是找不到...只能给你点提示啦
相关问答
Q1: C语言中所谓的数据结构是什么啊?
1.stdio.h一般写C语言程序都要加这个头文件c语言库函数数据结构,因为它包含scanf()、printf()等控制输入和输出的函数:
time.h包含的主要是和时间相关的函数
string.h主要包含用来拷贝或比较字符串的函数
stdlib.h主要包含这几个函数:malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()
这是比较常用到的头文件。
2.typedef struct{
SElemtype *base;
SElemtype *top
int stacksize;
}SqStack;
以上为声明一个结构体c语言库函数数据结构,并用SqStack作为这个结构体名,结构体为自定义的数据类型。
其中selemtype也是一个自定义的结构体名,具体代表什么还要看具体的代码。
Q2: C语言关于函数中调用函? 数据结构
这是复杂指针中最容易看懂的一种啦,搜索一下就会有人教你怎么看。基本方法是先右后左,遇小括号回头。习惯一下如下的读法,看多了就习惯了。
int (* Visit)(int e)
从Visit向右看,遇到括号,回头向左,看到*,所以Visit是一个指针。继续向左看,遇到括号,回头向右,看到(int e),这是一个参数为int的函数(为什么这样看,本能了^_^)。读到现在,已经知道Visit是一个指向参数为int的函数的指针,但函数的返回类型还没弄清楚。右边已经没有了,回头向左,看到int,这是函数的返回类型。
因此,Visit是一个函数指针,它指向的函数为int fun(int e)。注意,对Visit来说,它一点也不关心函数名,只要参数和返回值符合如上定义的,这个指针就可以调用。这个函数在哪呢,就是:
int Print_Element(int e)
{
printf("%d ", e);
return 0;
}
所以书上就说,Pre_Order_Traverse在先序遍历时,会调用这个函数来输出节点。
定义Visit时,只要把某个要调用的函数的名字改成(Visit*),其余不动,就可以正确写出这个指针。以后学到动态链接库的时候,这种指针是很常见的,用多了就和吃饭一样简单
Q3: 数据结构里的函数C语言库里有吗?
C语言包含c语言库函数数据结构的不多c语言库函数数据结构,但是C++中基本上常见的数据结构都是封装好的,可以直接调用库函数使用。
Q4: C语言的数据结构是什么
数据结构c语言库函数数据结构,data strucure 是具有特定关系c语言库函数数据结构的数据元素的集合。它包含两方面的信息c语言库函数数据结构:D+S
D 即数据元素的集合,也就是数据对象;S 数据元素间的关系,而这种关系指的是数据元素之间本身的关系 也叫做逻辑结构c语言库函数数据结构!而这种逻辑结构需要通过一种高级语言 比如c语言才能使得将这种逻辑结构在计算机中表现出来 也就是通过高级语言存储结构。
关于c语言库函数数据结构和c语言库函数的含义的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






