91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 177KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-06
  • 語言: C/C++
  • 標(biāo)簽: 馬踏棋盤??

資源簡介

馬踏棋盤算法 馬踏棋盤 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 馬踏棋盤課程設(shè)計 C語言編寫

資源截圖

代碼片段和文件信息

#include
#include
#include
#include
#include
#include
#include
#define?CLS?system(“cls“)
#define?TRUE?1
#define?FALSE?0
#define?OK?1
#define?ERROR?1
#define?STACK_INIT_SIZE?10?/*?存儲空間初始分配量?*/
#define?STACKINCREMENT?2?/*?存儲空間分配增量?*/
#define?N?8?????/*定義棋盤大小*/
typedef??int?Status;
typedef?struct?chess
{
???int?x;
???int?y;
???int?z;
}chess;
typedef?chess?SElemType;?
int?map[N][N][8];?/*按各點權(quán)值遞升存放待走方向每點8個*/
int?weight[N][N];?/*各點的權(quán)值*/
int?board[N][N];??/*棋盤未走過時值為0走過后值為1*/
static?SElemType?HTry[8]?=?/*?8個候選方向的偏移值*/
{
?????{-2?1?0}{?-1?2?0}{?1?2?0}{?2?1?0}{?2?-1?0}?{1?-2?0}?{-1?-2?0}?{-2?-1?0}?
};
void?setweight();/*求各點權(quán)值*/
void?setmap();???/*各點的8個方向按權(quán)值遞增排列*/
void?Path(int?x?int?y);?/*主算法函數(shù)踏遍棋盤*/

/*棧的順序存儲表示?*/
typedef?struct?SqStack
{
???SElemType?*base;?/*?在棧構(gòu)造之前和銷毀之后,base的值為NULL?*/
???SElemType?*top;?/*?棧頂指針?*/
???int?stacksize;?/*?當(dāng)前已分配的存儲空間,以元素為單位?*/
}SqStack;?/*?順序棧?*/
?Status?InitStack(SqStack?*S)?/*?構(gòu)造一個空棧S?*/
?{?
???(*S).base=(SElemType?*)malloc(STACK_INIT_SIZE*sizeof(SElemType));
???if(!(*S).base)
?????exit(OVERFLOW);?/*?存儲分配失敗?*/
???(*S).top=(*S).base;
???(*S).stacksize=STACK_INIT_SIZE;
???return?OK;
?}
?Status?StackEmpty(SqStack?S)
?{?/*?若棧S為空棧,則返回TRUE,否則返回FALSE?*/
???if(S.top==S.base)
?????return?TRUE;
???else
?????return?FALSE;
?}
Status?GetTop(SqStack?SSElemType?*e)
?{?/*?若棧不空,則用e返回S的棧頂元素,并返回OK;否則返回ERROR?*/
???if(S.top>S.base)
???{
?????*e=*(S.top-1);
?????return?OK;
???}
???else
?????return?ERROR;
?}
Status?SetTop(SqStack?SSElemType?*e)
{
???if(S.top>S.base)
???{
?????*(S.top-1)=*e;
?????return?OK;
???}
???else
?????return?ERROR;
}
?Status?Push(SqStack?*SSElemType?e)
?{?/*?插入元素e為新的棧頂元素?*/
???if((*S).top-(*S).base>=(*S).stacksize)?/*?棧滿,追加存儲空間?*/
???{
?????(*S).base=(SElemType?*)realloc((*S).base((*S).stacksize+STACKINCREMENT)*sizeof(SElemType));
?????if(!(*S).base)
???????exit(OVERFLOW);?/*?存儲分配失敗?*/
?????(*S).top=(*S).base+(*S).stacksize;
?????(*S).stacksize+=STACKINCREMENT;
???}
???*((*S).top)++=e;
???return?OK;
?}
?Status?Pop(SqStack?*SSElemType?*e)
?{?/*?若棧不空,則刪除S的棧頂元素,用e返回其值,并返回OK;否則返回ERROR?*/
???if((*S).top==(*S).base)
?????return?ERROR;
???*e=*--(*S).top;
???return?OK;
?}

void?main()/*主函數(shù)*/
{
?????int?xy;
?????int?ijk=0;
?????for(i=0;i????????for(j=0;j?????????????board[i][j]=0;
?????setweight();
?????setmap();
?????while(1)
?????{???????????
???????????printf(“輸入馬的行坐標(biāo)?X?(from?0?to?7):“);
???????????scanf(“%d“&x);
???????????printf(“輸入馬的列坐標(biāo)?Y?(from?0?to?7):“);
???????????scanf(“\n%d“&y);
???????????if(x<0||x>7||y<0||y>7)

???{printf(“輸入錯誤!\n\n“);
???flushall();}
??
???????????else
?????????????????break;
?????}
?Path(xy);

}/*end?main()*/



/*求各點權(quán)值:可走的方向數(shù).該值越小則被上一點選中的可能性越大*/
void?setweight()
{
????int?ijkx1y1;
?????for(i=0;i?????{
???????????for(j=0;j<

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件??????10671??2007-07-03?04:26??馬踏棋盤\馬踏棋盤.cpp

?????文件?????233472??2007-07-03?10:19??馬踏棋盤\馬踏棋盤.doc

?????文件?????208971??2007-07-01?23:36??馬踏棋盤\馬踏棋盤.exe

?????目錄??????????0??2007-07-03?12:01??馬踏棋盤

-----------?---------??----------?-----??----

???????????????453114????????????????????4


評論

共有 條評論