




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、數據結構課程設計衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂
2、袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆
3、蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕
4、羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄
5、螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿
6、羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃
7、衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆
8、肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄
9、羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈
10、螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃
11、羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇
12、衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁
13、肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆
14、襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂
15、螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇
16、罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻
17、螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅
18、肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀
19、裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄
20、螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈
21、羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅
22、螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿
23、肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄
24、袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈
25、蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻螀肁芇蒄螆肀荿蝿肅聿蒁薂羈肈薄螈袇肇芃薀螃膇莆螆蠆膆蒈蕿羇膅膇螄羃膄莀薇衿膃蒂袂螅膂薄蚅肄膁芄蒈羀膁莆蚄袆芀葿蒆螂艿膈螞蚈羋芁蒅肇芇蒃蝕羃芆薅薃衿芅芅螈螄芅莇薁肅芄蒀螇罿莃薂薀裊莂節螅螁罿莄薈蚇羈薆袃肆羇芆蚆羂羆莈袂袈羅蒀蚄螄羄薃蕆肂肅節蚃羈肅蒞蒆襖肂蕆蟻 數據結構課程設計報告課
26、題名稱: 迷 宮 求解 姓 名: 馬 兆 瑞 學 號: 200903021071 專 業: 電子信息科學與技術 班 級: 信息09-2班 指導教師: 侯 瑞 蓮 目 錄第一部分 引言3第二部分 課程設計報告3第一章 課程設計目的3第二章 課程設計內容和要求42.1 問題描述42.2 設計要求4第三章 課程設計總體方案及分析43.1 問題分析43.2 概要設計73.3 詳細設計73.4 調試分析103.5 測試結果103.6 參考文獻12第三部分 課程設計總結13附錄(源代碼)14第一部分 引言數據結構是一門理論性強、思維抽象、難度較大的課程,是基礎課和專業課之間的橋梁。該課程的先行課程是計算機
27、基礎、程序設計語言、離散數學等,后續課程有操作系統、編譯原理、數據庫原理、軟件工程等。 通過本門課程的學習,我們應該能透徹地理解各種數據對象的特點,學會數據的組織方法和實現方法,并進一步培養良好的程序設計能力和解決實際問題的能力,而且該課程的研究方法對我們學生在校和離校后的學習和工作,也有著重要的意義。數據結構是電子信息科學與技術專業的一門核心專業基礎課程,在該專業的課程體系中起著承上啟下的作用,學好數據結構對于提高理論認知水平和實踐能力有著極為重要的作用。學習數據結構的最終目的是為了獲得求解問題的能力。對于現實世界中的問題,應該能從中抽象出一個適當的數學模型,該數學模型在計算機內部用相應的數
28、據結構來表示,然后設計一個解此數學模型的算法,再進行編程調試,最后獲得問題的解答。基于此原因,暑期我們開設了數據結構課程設計。針對數據結構課程的特點,著眼于培養我們的實踐能力。實習課程是為了加強編程能力的培養,鼓勵學生使用新興的編程語言。相信通過數據結構課程實踐,無論是理論知識,還是實踐動手能力,同學們都會有不同程度上的提高。第二部分 課程設計報告第一章 課程設計目的僅僅認識到隊列是一種特殊的線性表是遠遠不夠的,本次實習的目的在于使學生深入了解隊列的特征,以便在實際問題背景下靈活運用它,同時還將鞏固這種數據結構的構造方法第二章 課程設計內容和要求 2.1問題描述: 迷宮
29、問題是取自心理學的一個古典實驗。在該實驗中,把一只老鼠從一個無頂大盒子的門放入,在盒子中設置了許多墻,對行進方向形成了多處阻擋。盒子僅有一個出口,在出口處放置一塊奶酪,吸引老鼠在迷宮中尋找道路以到達出口。對同一只老鼠重復進行上述實驗,一直到老鼠從入口走到出口,而不走錯一步。老鼠經過多次試驗最終學會走通迷宮的路線。設計一個計算機程序對任意設定的矩形迷宮如下圖a所示,求出一條從入口到出口的通路,或得出沒有通路的結論。
30、160; 圖a2.2設計要求:要求設計程序輸出如下:(1) 建立一個大小為m×n的任意迷宮(迷宮數據可由用戶輸入或由程序自動生成),并
31、在屏幕上顯示出來;(2)找出一條通路的二元組(i,j)數據序列,(i,j)表示通路上某一點的坐標。(3)用一種標志(如數字8)在迷宮中標出該條通路;(4)在屏幕上輸出迷宮和通路;(5)上述功能可用菜單選擇。第三章 課程設計總體方案及分析3.1 問題分析:1.迷宮的建立:迷宮中存在通路和障礙,為了方便迷宮的創建,可用0表示通路,用1表示障礙,這樣迷宮就可以用0、1矩陣來描述,2.迷宮的存儲:迷宮是一個矩形區域,可以使用二維數組表示迷宮,這樣迷宮的每一個位置都可以用其行列號來唯一指定,但是二維數組不能動態定義其大小,我們可以考慮先定義一個
32、較大的二維數組mazem+2n+2,然后用它的前m行n列來存放元素,即可得到一個m×n的二維數組,這樣(0,0)表示迷宮入口位置,(m-1,n-1)表示迷宮出口位置。注:其中m,n分別表示迷宮最大行、列數,本程序m、n的缺省值為39、39,當然,用戶也可根據需要,調整其大小。3.迷宮路徑的搜索:首先從迷宮的入口開始,如果該位置就是迷宮出口,則已經找到了一條路徑,搜索工作結束。否則搜索其上、下、左、右位置是否是障礙,若不是障礙,就移動到該位置,然后再從該位置開始搜索通往出口的路徑;若是障礙就選擇另一個相鄰的位置,并從它開始搜索路徑。為防止搜索重復出現,則將已搜索過的位置標記為2,同時保
33、留搜索痕跡,在考慮進入下一個位置搜索之前,將當前位置保存在一個隊列中,如果所有相鄰的非障礙位置均被搜索過,且未找到通往出口的路徑,則表明不存在從入口到出口的路徑。這實現的是廣度優先遍歷的算法,如果找到路徑,則為最短路徑。以矩陣 0 0 1 0 1 為例,來示范一下 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 首先,將位置(0,0)(序號0)放入隊列中,其前節點為空,從它開始搜索,其標記變為2,由于其只有一個非障礙位置,所以接下來移動到(0,1)(序號1),其前節點序號為0,標記變為2,然后從(0,1)移動到(1,1)(序號2),放入隊列中,其前節點序號為1,(1,1)存在(1,
34、2)(序號3)、(2,1)(序號4)兩個可移動位置,其前節點序號均為2.對于每一個非障礙位置,它的相鄰非障礙節點均入隊列,且它們的前節點序號均為該位置的序號,所以如果存在路徑,則從出口處節點的位置,逆序就可以找到其從出口到入口的通路。如下表所示: 0 1 2 3 4 5 6 7 8 9 10(0,0)(0,1)(1,1)(1,2)(2,1)(2,2)(1,3)(2,3)(0,3)(3,3)(3,4)-10122345679 由此可以看出,得到最短路徑:(3,4)(3,3)(2,3)(2,2)(1,2)(1,1)(0,1)(0,0) 搜索算法流程圖如下所示: 3.2 概要設計1.構建一個二維數組
35、mazem+2n+2用于存儲迷宮矩陣自動或手動生成迷宮,即為二維數組mazem+2n+2賦值構建一個隊列用于存儲迷宮路徑建立迷宮節點struct point,用于存儲迷宮中每個節點的訪問情況實現搜索算法屏幕上顯示操作菜單 2.本程序包含10個函數: (1)主函數 main()(2)手動生成迷宮函數 shoudong_maze()(3)自動生成迷宮函數 zidong_maze()(4)將迷宮打印成圖形 print_maze()(5)打印迷宮路徑 (若存在路徑) result_maze()(6)入隊 enqueue()(7)出隊 dequeue()(8)判斷隊列是否為空 is_empty()(9)
36、訪問節點 visit()(10)搜索迷宮路徑 mgpath()3.3 詳細設計實現概要設計中定義的所有數據類型及操作的偽代碼算法1. 節點類型和指針類型迷宮矩陣類型:int mazem+2n+2;為方便操作使其為全局變量迷宮中節點類型及隊列類型:struct pointint row,col,predecessor que5122. 迷宮的操作(1)手動生成迷宮void shoudong_maze(int m,int n)定義i,j為循環變量for(i<=m)for(j<=n)輸入mazeij的值(2)自動生成迷宮void zidong_maze(int m,int n)定義i,j
37、為循環變量for(i<=m)for(j<=n) mazeij=rand()%2 /由于rand()產生的隨機數是從0到rand_max,rand_max是定義在stdlib.h中的,其值至少為32767),要產生從x到y的數,只需要這樣寫:k=rand()%(y-x+1)+x;(3)打印迷宮圖形void print_maze(int m,int n)用i,j循環變量,將mazeij輸出 、(4)打印迷宮路徑void result_maze(int m,int n)用i,j循環變量,將mazeij輸出 、(5)搜索迷宮路徑 迷宮中隊列入隊操作void enqueue(struct p
38、oint p)將p放入隊尾,tail+迷宮中隊列出隊操作struct point dequeue(struct point p)head+,返回quehead-1判斷隊列是否為空int is_empty()返回head=tail的值,當隊列為空時,返回0訪問迷宮矩陣中節點void visit(int row,int col,int maze4141)建立新的隊列節點visit_point,將其值分別賦為row,col,head-1,mazerowcol=2,表示該節點以被訪問過;調用enqueue(visit_point),將該節點入隊路徑求解void mgpath(int maze4141,
39、int m,int n)先定義入口節點為struct point p=0,0,-1,從maze00開始訪問。如果入口處即為障礙,則此迷宮無解,返回0 ,程序結束。否則訪問入口節點,將入口節點標記為訪問過mazep.rowp.col=2,調用函數enqueue(p)將該節點入隊。判斷隊列是否為空,當隊列不為空時,則運行以下操作: 調用dequeue()函數,將隊頭元素返回給p,如果p.row=m-1且p.col=n-1,即到達出口節點,即找到了路徑,結束如果p.col+1<n且mazep.rowp.col+1=0,說明未到迷宮右邊界,且其右方有通路,則visit(p.row,p.col+1
40、,maze),將右邊節點入隊標記已訪問如果p.row+1<m且mazep.row+1p.col=0,說明未到迷宮下邊界,且其下方有通路,則visit(p.row+1,p.col,maze),將下方節點入隊標記已訪問如果p.col-1>0且mazep.rowp.col-1=0,說明未到迷宮左邊界,且其左方有通路,則visit(p.row,p.col-1,maze),將左方節點入隊標記已訪問如果p.row-1>0且mazep.row-1p.col=0,說明未到迷宮上邊界,且其上方有通路,則visit(p.row,p.col+1,maze),將上方節點入隊標記已訪問訪問到出口(找到
41、路徑)即p.row=m-1且p.col=n-1,則逆序將路徑標記為3即mazep.rowp.col=3;while(p.predecessor!=-1)p=queuep.predecessor; mazep.rowp.col=3; 最后將路徑圖形打印出來。3.菜單選擇 while(cycle!=(-1) 手動生成迷宮 請按:1 自動生成迷宮 請按:2 退出 請按:3 scanf("%d",&i); switch(i) case 1:請輸入行列數(如果超出預設范圍則提示重新輸入) shoudong_maze(m,n); print_maze(m,n); mgpath(
42、maze,m,n); if(x!=0) result_maze(m,n);case 2 :請輸入行列數(如果超出預設范圍則提示重新輸入) zidong_maze(m,n); print_maze(m,n); mgpath(maze,m,n); if(x!=0) result_maze(m,n);case 3:cycle=(-1); break;注:具體源代碼見附錄3.4 調試分析 在調試過程中,首先使用的是棧進行存儲,但是產生的路徑是多條或不是最短路徑,所以通過算法比較,改用此算法3.5 測試結果 1.手動輸入迷宮 2.自動生成迷宮3.6 參考文獻 【1】 嚴蔚敏 吳偉民 數據結構
43、(c語言版) 清華大學出版社, 2009年9月 【2】 譚浩強 c程序設計(第三版) 清華大學出版社 2009年1月第三部分 課程設計總結通過這段時間的課程設計,本人對計算機的應用,數據結構的作用以及c語言的使用都有了更深的了解。尤其是c語言的進步讓我深刻的感受到任何所學的知識都需要實踐,沒有實踐就無法真正理解這些知識以及掌握它們,使其成為自己的財富。在理論學習和上機實踐的各個環節中,通過自主學習和請教老師,我收獲了不少。當然也遇到不少的問題,也正是因為這些問題引發的思考給我帶了收獲。從當初不喜歡上機寫程序到現在能主動寫程序,從當初拿著程序不只如何下手到現在知道如何分析問題,如何用專業知識解決
44、實際問題的轉變,我發現無論是專業知識還是動手能力,自己都有很大程度的提高。在這段時間里,我對for、while等的循環函數用法更加熟悉,逐漸形成了較好的編程習慣。在老師的指導幫助下,同學們課余時間的討論中,這些問題都一一得到了解決。在程序的調試能力上,無形中得到了許多的提高。例如:頭文件的使用,變量和數組的范圍問題,定義變量時出現的問題等等。在實際的上機操作過程中,不僅是讓我們了解數據結構的理論知識,更重要的是培養解決實際問題的能力,所以相信通過此次實習可以提高我們分析設計能力和編程能力,為后續課程的學習及實踐打下良好的基礎。在這次短短的課程實踐里,我們得到了侯瑞蓮老師的關心和幫助。她給了我們
45、很多的信息,與我們一起探討問題,詢問我們遇到了哪些問題并耐心給予指導。當我們遇到技術上難以解決的問題時,她就會指導我們解決問題,她把自己多年來積累的經驗教授給我們,使我們順利地完成了課程實踐任務。時間過得真快,大學生活不知不覺就走過了一年,一年的大學學習和課程實踐階段的提高,使我們本身知識得到提高的同時,也增強了我們對未來工作的信心,我們相信自己未來三年的學習更使我們有能力勝任將來的工作。 附錄:#include"stdlib.h"#include"stdio.h"#define n 39#define m 39int x;int mazen+
46、2m+2;struct pointint row,col,predecessor;queue512;int head=0,tail=0;void shoudong_maze(int m,int n)int i,j;printf("nn");printf("請按行輸入迷宮,0表示通路,1表示障礙:nn");for(i=0;i<m;i+)for(j=0;j<n;j+) scanf("%d",&mazeij);void zidong_maze(int m,int n)int i,j;printf("n迷宮生成中
47、nn");system("pause");for(i=0;i<m;i+)for(j=0;j<n;j+)mazeij=rand()%2;/由于rand()產生的隨機數是從0到rand_max/rand_max是定義在stdlib.h中的,其值至少為32767)/要產生從x到y的數,只需要這樣寫:k=rand()%(y-x+1)+x; void print_maze(int m,int n)int i,j;printf("n迷宮生成結果如下:nn");printf("迷宮入口n");printf("&quo
48、t;);for(i=0;i<m;i+)printf("n");for(j=0;j<n;j+) if(mazeij=0) printf(""); if(mazeij=1) printf("");printf("迷宮出口n");void result_maze(int m,int n)int i,j;printf("迷宮通路(用表示)如下所示:nt");for(i=0;i<m;i+)printf("n"); for(j=0;j<n;j+) if(mazei
49、j=0|mazeij=2) printf(""); if(mazeij=1) printf(""); if(mazeij=3) printf(""); void enqueue(struct point p)queuetail=p;tail+;struct point dequeue()head+;return queuehead-1;int is_empty()return head=tail;void visit(int row,int col,int maze4141)struct point visit_point=row,c
50、ol,head-1;mazerowcol=2;enqueue(visit_point);int mgpath(int maze4141,int m,int n)x=1;struct point p=0,0,-1;if(mazep.rowp.col=1)printf("n=n");printf("此迷宮無解nn");x=0;return 0;mazep.rowp.col=2;enqueue(p);while(!is_empty()p=dequeue();if(p.row=m-1)&&(p.col=n-1) break;if(p.col+1&
51、lt;n)&&(mazep.rowp.col+1=0) visit(p.row,p.col+1,maze);if(p.row+1<m)&&(mazep.row+1p.col=0) visit(p.row+1,p.col,maze);if(p.col-1>=0)&&(mazep.rowp.col-1=0) visit(p.row,p.col-1,maze);if(p.row-1>=0)&&(mazep.row-1p.col=0) visit(p.row-1,p.col,maze);if(p.row=m-1&
52、&p.col=n-1)printf("n=n");printf("迷宮路徑為:n");printf("(%d,%d)n",p.row,p.col);mazep.rowp.col=3;while(p.predecessor!=-1)p=queuep.predecessor;printf("(%d,%d)n",p.row,p.col);mazep.rowp.col=3;else printf("n=n"); printf("此迷宮無解!nn");x=0;return 0;
53、void main()int i,m,n,cycle=0;while(cycle!=(-1) printf("*n"); printf(" 歡迎進入迷宮求解系統n"); printf(" 設計者:馬兆瑞(信息09-2班)n"); printf("*n"); printf(" 手動生成迷宮 請按:1n"); printf(" 自動生成迷宮 請按:2n"); printf(" 退出 請按:3nn"); printf("*n"); print
54、f("n"); printf("請選擇你的操作:n"); scanf("%d",&i); switch(i) case 1:printf("n請輸入行數:");scanf("%d",&m); printf("n"); printf("請輸入列數:");scanf("%d",&n); while(m<=0|m>39)|(n<=0|n>39) printf("n抱歉,你輸入的行列數超
55、出預設范圍(0-39,0-39),請重新輸入:nn"); printf("請輸入行數:");scanf("%d",&m); printf("n"); printf("請輸入列數:");scanf("%d",&n); shoudong_maze(m,n); print_maze(m,n); mgpath(maze,m,n); if(x!=0) result_maze(m,n); printf("nnpress enter contiue!n");getchar();while(getchar()!='n');break; case 2:printf("n請輸入行數:");scanf("%d",
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年證券從業資格證信息交流試題及答案
- 微生物檢驗考生需要注意的事項試題及答案
- 技術崗位勞動合同草案
- 項目管理重要考點試題及答案
- 2025年證券從業資格證考生思考題試題及答案
- 夢想作文素材
- 呼吸科醫生工作計劃
- 證券市場監管機制考題及答案
- 微生物檢驗持續教育的重要性及試題及答案
- 微生物檢驗技術考試全面復習試題及答案
- 蘇教版三年級下冊數學脫式計算去括號練習400題及答案
- 《礦山機械》課件
- 行業投資風險評估報告:評估行業投資風險程度
- 知識產權維權授權書
- 20220804整車行業SAP VMS核心解決方案
- 云ACP云計算考試題庫及答案
- 達人采風活動方案
- 制造業本季度總結與下季度規劃
- 大健康加盟項目計劃書
- 幼兒園課程圖景課程實施方案編制指南
- 氣管狹窄患者的護理查房課件
評論
0/150
提交評論