#include "stdafx.h"
typedef structcoordinate;
typedef struct item;
#define maze_line 10
#define maze_row 9
int a[maze_row][maze_line] =
;int mark[maze_row][maze_line] = ;
#define selemtype item
#define stack_init_len 10
#define stack_incr_len 10
typedef struct stack
sqstack;
int init_stack(sqstack **ptr)
(*ptr)->base = (selemtype *)calloc(stack_init_len, sizeof(selemtype));
if(null == (*ptr)->base)
(*ptr)->top = (*ptr)->base;
(*ptr)->stack_size = stack_init_len;
return true;
}int push_stack(sqstack *ptr, selemtype elem)
ptr->top = ptr->base + ptr->stack_size;
ptr->stack_size += stack_incr_len;
}*ptr->top= elem;
ptr->top++;
return true;
}int pop_stack(sqstack *ptr, selemtype *elem)
else
return true;
}int get_top(sqstack *ptr, selemtype *elem)
else
return true;
}void clear_stack(sqstack * ptr)
free(ptr);
}return;
}int is_empty(sqstack *ptr)
else
}int is_passed(item *ptr)
if(0 != ptr->no || (0 == a[ptr->loc.y][ptr->loc.x]) || 0 != mark[ptr->loc.y][ptr->loc.x])
else
}int is_end(item *ptr)
else
}int get_next(item *ptr, item *next)
if(false == result)
return result;
}void mark_pos(item *ptr, int value)
int maze_find_path(sqstack *head)
;item current = ;
item *ptr = ¤t;
item next = ;
int no = 0;
*ptr = start;
doget_next(ptr, &next);
*ptr = next;
}else
if(ptr->direction < 3)
}} while(false == is_empty(head));
return false;
}void print_path(sqstack *ptr)
while(ptr->top !=ptr->base)
return;
int mazepath()
else
clear_stack(head);
return true;
}
棧和佇列基本應用
一 棧 棧 是限定僅在表尾進行插入或刪除操作的線性表,表尾段稱為棧頂,表頭段稱為棧底,棧有稱後進先出線性表。棧有順序棧和鏈棧。個人總結 棧的操作可以在陣列的基礎上,也可以運用stack。陣列的操作就不多說了,現在總結一下stack。stack基本應用。標頭檔案 include stack stack...
鏈式儲存棧及基本應用
實驗二 棧 佇列 實驗學時 學時 背景知識 入棧 出棧,入隊 出隊。目的要求 1 掌握棧 佇列的思想及其儲存實現。2 掌握棧 佇列的常見演算法的程式實現。實驗內容 1 採用鏈式儲存實現棧的初始化 入棧 出棧操作。2 採用順序儲存實現棧的初始化 入棧 出棧操作。3 採用鏈式儲存實現佇列的初始化 入隊 ...
Tomcat的基本應用
1 測試tomcat 啟動tomcat 在瀏覽器中輸入 2 tomcat的管理 tomcat 的服務管理頁面是 的應用程式管理頁面 3 發布應用程式 jsp應用程式 war有二種方式,一種是按一定的目錄結構組織檔案,一種是乙個字尾為 war的壓縮包,因此它的部署方式也有兩種 1 在瀏覽器中輸入 就會...