阿摩線上測驗 登入

最新科目

最新試卷

最新試題

最新申論題

5. (16%) 使用 stack 實作 老鼠走過言問題 (Maze path search),運用 C 語言程式: void path() { // assume int maze30 and offsets move[8] has been set in main function // typedef struct {int v; int h;} offsets; int i, row, col, nextrow, nextcol, dir, found = 0, top =0, mark30; typedef struct { int row; int col; int dir;} element element position, stack[100]; mark1 = 1; stack[0].row = 1; stack[0].col = 1; stack[0].dir = 0; //實作以下敘述 // Use stack to get current row, col, dir // Use dir to calculate nextrow, nextcol // Use nextrow, nextcol to check this move (1) arrive exit, or // (2) become a legal move; add this move into the stack, or // (3) check other dir }

4. (10%) 使用 queue 實作 level order traversal 轉換,運用以下 C 語言程式: void level_order (tree *root) { //assume root is not null node front, rear; //實作以下敘述 // visit tree nodes based on level order by using queue // use queue by front, rear, enqueue(&rear, root), root =dequeue(&front) // print the values of tree nodes // describe the ending condition }

3. (8%)使用 linked list 實作 stack,運用以下 C 語言程式: typedef struct node { int value; node *next;} void push (node **top, int new_value) { // assume top is not null node new_node = (node ) malloc (sizeof (node)); // (A) 實作以下敘述 // add new_node to stack by top } int pop (node **top) { // assume top is not null int value; node deleting_node = top; // (B) 實作以下敘述 // remove the deleting node from stack, get the value of deleting node free(deleting_node); return value; }

最新課程

最新主題筆記

最新討論