📄 heap.h
字号:
#include <iostream.h>
#include <stdlib.h>
class Node
{
public:
int up;
int down;
int left;
int right;
int a;
int b;
int upflag;
int downflag;
int leftflag;
int rightflag;
//int *array;
Node *pre;
Node *next;
public:
Node()
:a(1),b(1),up(0),down(0),left(0),right(0),pre(NULL),next(NULL)
{
upflag = 0;
downflag = 0;
leftflag = 0;
rightflag = 0;
}
void checkroad(int (*array)[10])
{
if(array[a-1][b]==1)
{
up = 1;
}
else
{
up = 0;
}
if(upflag)
{
up = 0;
}
if(array[a+1][b]==1)
{
down=1;
}
else
{
down = 0;
}
if(downflag)
{
down = 0;
}
if(array[a][b+1]==1)
{
right=1;
}
else
{
right = 0;
}
if(rightflag)
{
right = 0;
}
if(array[a][b-1]==1)
{
left=1;
}
else
{
left = 0;
}
if(leftflag)
{
left = 0;
}
}
int GetSum()
{
return up+down+right+left;
}
void uproad(int (*Array)[10])
{
a=a-1;
upflag = 0;
downflag = 1;
leftflag = 0;
rightflag = 0;
for(int i=0;i<=9;i++)
{
printf("\n");
for(int j=0;j<=9;j++)
{
if(Array[i][j]==1)
{
if(i==a&&j==b)
{
printf(" & ");
}
else
{
printf(" ");
}
}
else
{
printf(" * ");
}
}
}
system("cls");
//printf("上");
}
void downroad(int (*Array)[10])
{
a=a+1;
downflag = 0;
upflag = 1;
leftflag = 0;
rightflag = 0;
for(int i=0;i<=9;i++)
{
printf("\n");
for(int j=0;j<=9;j++)
{
if(Array[i][j]==1)
{
if(i==a&&j==b)
{
printf(" & ");
}
else
{
printf(" ");
}
}
else
{
printf(" * ");
}
}
}
system("cls");
// printf("下");
}
void leftroad(int (*Array)[10])
{
b=b-1;
leftflag = 0;
upflag = 0;
downflag = 0;
rightflag = 1;
for(int i=0;i<=9;i++)
{
printf("\n");
for(int j=0;j<=9;j++)
{
if(Array[i][j]==1)
{
if(i==a&&j==b)
{
printf(" & ");
}
else
{
printf(" ");
}
}
else
{
printf(" * ");
}
}
}
system("cls");
// printf("<---");
}
void rightroad(int (*Array)[10])
{
b=b+1;
rightflag = 0;
leftflag = 1;
upflag = 0;
downflag = 0;
for(int i=0;i<=9;i++)
{
printf("\n");
for(int j=0;j<=9;j++)
{
if(Array[i][j]==1)
{
if(i==a&&j==b)
{
printf(" & ");
}
else
{
printf(" ");
}
}
else
{
printf(" * ");
}
}
}
system("cls");
// printf("--->");
}
};
class CHeap
{
int up;
int down;
int left;
int right;
int x;
int y;
CHeap *p_head;
CHeap *p_top;
CHeap *pre;
CHeap *next;
int length;
public:
CHeap()
{
p_head = NULL;
p_top = NULL;
length = 0;
}
bool pop(Node &node)
{
node.a = p_top->x;
node.b = p_top->y;
node.up = p_top->up;
node.down = p_top->down;
node.left = p_top->left;
node.right = p_top->right;
p_top = p_top->pre;
length--;
//cout << endl << "跳回到" << node.a << " " << node.b << "点" << endl;
return true;
}
bool push(Node &node)
{
CHeap *p = NULL;
p = new CHeap;
p->up = node.up;
p->left = node.left;
p->right = node.right;
p->down = node.down;
p->x = node.a;
p->y = node.b;
if(length == 0)
{
p->next = NULL ;
p_head = p;
p->pre= NULL;
p_top = p;
length++;
return true;
}
p->next = NULL ;
p->pre = p_top;
p_top->next = p;
p_top = p;
length++;
return true;
}
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -