資料結構的概念
學這東西感覺一下又回到了十年前
資料結構(data structure):資料的組織方式
演算法+資料結構=程式
堆疊(後進先出):
示例**:
#include
char stack[512];
int top=0;
void push(char c)
char pull()
int is_empty(void)
int main(void)
putchar('\n');
return 0;
}深試代化搜尋
用深度優代搜尋解決迷宮問題
#include
#define max_row 5
#define max_col 5
/*點座標*/
struct point
stack[512];
int top=0;
/*壓棧*/
void push(struct point p)
/*彈棧*/
struct point pop(void)
/*檢查堆疊是否為空*/
int is_empty(void)
/*地圖*/
int maze[max_row][max_col]=;
/*輸出堆疊值*/
void print_maze(void)
putchar('\n');
}printf("***************\n");
}/* */
struct point predecessor[max_row][max_col]=,,,,},
,,,,},
,,,,},
,,,,},
,,,,},
};/*儲存走地圖線路座標*/
void visit(int row,int col,struct point pre);
maze[row][col]=2;
predecessor[row][col]=pre;
push(visit_point);
}int main();
maze[p.row][p.col]=2;
push(p);
while(!is_empty())
/*right*/
if(p.col+1 visit(p.row,p.col+1,p);
}/*down*/
if(p.row+1visit(p.row+1,p.col,p);
}/*left*/
if(p.col-1>=0&&maze[p.row][p.col-1]==0)
/*up*/
if(p.row-1>=0&&maze[p.row-1][p.col]==0)
print_maze();
}if(p.row==max_row-1&&p.col==max_col-1)
}else
return 0;
佇列的廣度優代搜尋
佇列:先進先出
兩種操作:入隊enqueue/出隊dequeue
示例**:
#include
#define max_row 5
#define max_col 5
struct point
queue[512];
int head=0,tail=0;
/*入隊*/
void enqueue(struct point p)
/*出隊*/
struct point dequeue(void)
int is_empty(void)
int maze[max_row][max_col]=;
void print_maze(void)
putchar('\n');
}printf("***************\n");
}void visit(int row,int col);
maze[row][col]=2;
enqueue(visit_point);
}int main(void);
maze[p.row][p.col]=2;
enqueue(p);
while(!is_empty())
/*right*/
if(p.col+1 visit(p.row,p.col+1);
}/*down*/
if(p.row+1visit(p.row+1,p.col);
}/*left*/
if(p.col-1>=0&&maze[p.row][p.col-1]==0)
/*up*/
if(p.row-1>=0&&maze[p.row-1][p.col]==0)
print_maze();
}if(p.row==max_row-1&&p.col==max_col-1)
}else
return 0;
}
c語言學習筆記八
資料結構的概念 學這東西感覺一下又回到了十年前 資料結構 data structure 資料的組織方式 演算法 資料結構 程式 堆疊 後進先出 示例 include char stack 512 int top 0 void push char c char pull int is empty vo...
c語言學習筆記八
資料結構的概念 學這東西感覺一下又回到了十年前 資料結構 data structure 資料的組織方式 演算法 資料結構 程式 堆疊 後進先出 示例 include char stack 512 int top 0 void push char c char pull int is empty vo...
C語言學習筆記(八)
1陣列 在程式設計過程中我們往往需要處理一批相同型別的資料,如果使用基本型別定義變數來儲存,顯然是不方便的,這是我們就需要使用陣列了。2陣列特點 1.陣列大小必須是確定的,不能隨機改變的。2.陣列的元素必須是相同型別的,不允許出現混合型別。3一維陣列 3.1一維陣列的定義 型別說明符 陣列名 常量表...