本文目录一览:
C语言里抓图
你的程序必须在前台(点击你程序的标题栏,或任务栏中你程序的图标),再按alt+PrintScreen,然后再word中按ctrl+v
C语言实现图的广度优先搜索遍历算法
先写个大题思路,楼主先自己想想,想不出来的话,2天后给代码。
queuenode q;
q.push(start);
bool canVisit[][];
node cur;
while(!q.empty()){
cur = q.top();
q.pop();
foreach(node is connected by cur){
if(canVisit[node.x][node.y])
{
printf("访问结点(%d,%d)",node.x,node.y);
canVisit[node.x][node.y]=false;
q.push(node);
}
}
}
急!!如何用C语言建立一个图和图的深度优先搜索遍历,举个例子就行,要代码!!谢谢!!
/* ======================================== */
/* 图形的深度优先搜寻法 */
/* ======================================== */
#include stdlib.h
struct node /* 图形顶点结构宣告 */
{
int vertex; /* 顶点资料 */
struct node *nextnode; /* 指下一顶点的指标 */
};
typedef struct node *graph; /* 图形的结构新型态 */
struct node head[9]; /* 图形顶点结构数组 */
int visited[9]; /* 遍历记录数组 */
/* ---------------------------------------- */
/* 建立图形 */
/* ---------------------------------------- */
void creategraph(int *node,int num)
{
graph newnode; /* 新顶点指标 */
graph ptr;
int from; /* 边线的起点 */
int to; /* 边线的终点 */
int i;
for ( i = 0; i num; i++ ) /* 读取边线的回路 */
{
from = node[i*2]; /* 边线的起点 */
to = node[i*2+1]; /* 边线的终点 */
/* 建立新顶点记忆体 */
newnode = ( graph ) malloc(sizeof(struct node));
newnode-vertex = to; /* 建立顶点内容 */
newnode-nextnode = NULL; /* 设定指标初值 */
ptr = (head[from]); /* 顶点位置 */
while ( ptr-nextnode != NULL ) /* 遍历至链表尾 */
ptr = ptr-nextnode; /* 下一个顶点 */
ptr-nextnode = newnode; /* 插入结尾 */
}
}
/* ---------------------------------------- */
/* 图形的深度优先搜寻法 */
/* ---------------------------------------- */
void dfs(int current)
{
graph ptr;
visited[current] = 1; /* 记录已遍历过 */
printf("顶点[%d] ",current); /* 印出遍历顶点值 */
ptr = head[current].nextnode; /* 顶点位置 */
while ( ptr != NULL ) /* 遍历至链表尾 */
{
if ( visited[ptr-vertex] == 0 ) /* 如过没遍历过 */
dfs(ptr-vertex); /* 递回遍历呼叫 */
ptr = ptr-nextnode; /* 下一个顶点 */
}
}
/* ---------------------------------------- */
/* 主程式: 建立图形后,将遍历内容印出. */
/* ---------------------------------------- */
void main()
{
graph ptr;
int node[20][2] = { {1, 2}, {2, 1}, /* 边线数组 */
{1, 3}, {3, 1},
{2, 4}, {4, 2},
{2, 5}, {5, 2},
{3, 6}, {6, 3},
{3, 7}, {7, 3},
{4, 8}, {8, 4},
{5, 8}, {8, 5},
{6, 8}, {8, 6},
{7, 8}, {8, 7} };
int i;
for ( i = 1; i = 8; i++ )
{
head[i].vertex = i; /* 设定顶点值 */
head[i].nextnode = NULL; /* 清除图形指标 */
visited[i] = 0; /* 设定遍历初值 */
}
creategraph(node,20); /* 建立图形 */
printf("图形的邻接链表内容:\n");
for ( i = 1; i = 8; i++ )
{
printf("顶点%d =",head[i].vertex); /* 顶点值 */
ptr = head[i].nextnode; /* 顶点位置 */
while ( ptr != NULL ) /* 遍历至链表尾 */
{
printf(" %d ",ptr-vertex); /* 印出顶点内容 */
ptr = ptr-nextnode; /* 下一个顶点 */
}
printf("\n"); /* 换行 */
}
printf("图形的深度优先遍历内容:\n");
dfs(1); /* 印出遍历过程 */
printf("\n"); /* 换行 */
}
tc语言循环找图怎么写,
空间 依次找图
整型 线程编号1
功能 逻辑型 线程方法1()
循环(真)
辅助.等待(1000)
键盘.按键(65,1) //A
辅助.等待(500)
整型 x,y,图I
图I=图像.找图(0,0,1440,900,"rc:I.bmp",#102030,0.8,0,x,y) //找图I
如果(x0)
键盘.按键(66,1) //B
辅助揣叮编顾妆该表双勃晶.等待(500)
键盘.按键(67,1) //C
辅助.等待(500)
整型 x,y,图II
x = 0 //我不懂你这个语言,用就是在这里给x赋初值0就是
循环( x = 0) //同样,改成你这个语言的判断
图II=图像.找图(0,0,1440,900,"rc:II.bmp",#102030,0.8,0,x,y) //找图II
如果(x0)
键盘.按键(68,1) //D
辅助.等待(500)
如果结束
循环结束
如果结束
循环结束
返回 真
功能结束