c語言學習筆記八

2022-08-18 05:18:11 字數 2500 閱讀 3388

資料結構的概念

學這東西感覺一下又回到了十年前

資料結構(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一維陣列的定義 型別說明符 陣列名 常量表...