武漢紡織大學(xué)《數(shù)據(jù)結(jié)構(gòu)》實(shí)驗(yàn)報(bào)告_第1頁
武漢紡織大學(xué)《數(shù)據(jù)結(jié)構(gòu)》實(shí)驗(yàn)報(bào)告_第2頁
武漢紡織大學(xué)《數(shù)據(jù)結(jié)構(gòu)》實(shí)驗(yàn)報(bào)告_第3頁
武漢紡織大學(xué)《數(shù)據(jù)結(jié)構(gòu)》實(shí)驗(yàn)報(bào)告_第4頁
武漢紡織大學(xué)《數(shù)據(jù)結(jié)構(gòu)》實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上武漢紡織大學(xué)數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告班級(jí): 級(jí) 管工類 專業(yè) 2 班 姓名: 序號(hào): 1 實(shí)驗(yàn)時(shí)間: 2014 年 4 月 4 日 指導(dǎo)教師: 實(shí)驗(yàn)一:線性結(jié)構(gòu)的基本操作一、實(shí)驗(yàn)?zāi)康模?1、熟悉Java 上機(jī)環(huán)境,掌握J(rèn)ava語言編程方法,熟練運(yùn)用Java語言實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和算法設(shè)計(jì)。2、掌握線性表的順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的定義與基本操作,并能用Java語言實(shí)現(xiàn)線性表基本功能。3、掌握棧、隊(duì)列的存儲(chǔ)結(jié)構(gòu)與基本操作,并能利用該結(jié)構(gòu)編寫算法解決實(shí)際問題。二、實(shí)驗(yàn)內(nèi)容: 1、編寫一個(gè)Java語言程序,利用線性表實(shí)現(xiàn)約瑟夫環(huán)問題,參考書本程序示例【例2.1】,完善該程序并運(yùn)行。

2、 實(shí)驗(yàn)步驟: 、在Java編輯環(huán)境中新建程序,根據(jù)【例2.1】輸入完整程序內(nèi)容,并保存和編譯; 、運(yùn)行程序,輸入約瑟夫環(huán)長度number、起始位置start、計(jì)數(shù)值distance; 、依次輸入約瑟夫環(huán)中number個(gè)數(shù)據(jù)元素; 、輸出約瑟夫環(huán)執(zhí)行過程。2、編寫一個(gè)程序,利用棧解決遞歸問題,實(shí)現(xiàn)n階Hanoi塔問題。 實(shí)驗(yàn)步驟: 、在Java編輯環(huán)境中新建程序,輸入n階Hanoi塔程序內(nèi)容,并保存和編譯; 、運(yùn)行程序,輸入盤子數(shù)目n。 、輸出n階Hanoi塔問題解決過程。參考程序如下:import java.util.Scanner;public class MethodOfHanoipubl

3、ic static void main(String args)System.out.println(“請(qǐng)輸入盤子數(shù)目:”);Scanner scan=new Scanner(System.in); /輸入盤子數(shù)目int number=scan.nextInt();hanoi(number,A,B,C); /調(diào)用hanoi方法public static void hanoi(int num, char a,char b,char c)if (num=1) /只有一個(gè)盤子,直接移動(dòng) move(a,c);elsehanoi(num-1,a,c,b); /遞歸調(diào)用move(a,c);hanoi(nu

4、m-1,b,a,c); /遞歸調(diào)用 public static void move(char a,char c) /移動(dòng)過程方法 System.out.println("從 "+a+" 移到 "+c); 3、編寫一個(gè)程序,利用Java語言建立一個(gè)空隊(duì)列,如果輸入奇數(shù),則奇數(shù)入隊(duì)列;如果輸入偶數(shù),則隊(duì)列中的第一個(gè)元素出隊(duì)列;如果輸入0,則退出程序。 實(shí)驗(yàn)步驟: 、在Java編輯環(huán)境中新建程序,輸入程序內(nèi)容,并保存和編譯; 、運(yùn)行程序,輸入數(shù)據(jù)并進(jìn)行相應(yīng)隊(duì)列操作。 、輸出每次輸入數(shù)據(jù)后的隊(duì)列結(jié)果。三、操作步驟:1代碼:import java.util.Arr

5、ayList;import java.util.List;public class YSfhpublic YSfh(int number, int start, int distance) List<String> list = new ArrayList<String>(number);for (int i = 0; i < number; i+)list.add(char) ('A' + i) + "");System.out.print("約瑟夫環(huán)(" + number + ","

6、+ start + "," + distance + "),");System.out.print(list.toString();int i = start;while (list.size() > 1) i = (i + distance - 1) % list.size();System.out.print("刪除" + list.remove(i).toString() + ",");System.out.print(list.toString();System.out.print("被赦免

7、者是" + list.get(0).toString();public static void main(String args) new YSfh(5, 0, 2);運(yùn)行結(jié)果:2.代碼:import java.util.Scanner;public class MethodOfHanoipublic static void main(String args)System.out.println("請(qǐng)輸入盤子數(shù)目:");Scanner scan=new Scanner(System.in); /輸入盤子數(shù)目int number=scan.nextInt();han

8、oi(number,'A','B','C'); public static void hanoi(int num, char a,char b,char c)if (num=1) /只有一個(gè)盤子,直接移動(dòng) move(a,c);elsehanoi(num-1,a,c,b); /遞歸調(diào)用move(a,c);hanoi(num-1,b,a,c); /遞歸調(diào)用 public static void move(char a,char c) /移動(dòng)過程方法 System.out.println("從 "+a+" 移到 "

9、;+c); 運(yùn)行結(jié)果:3.代碼QQueue.javapublic interface QQueue<T> boolean isEmpty();boolean enqueue(T x);T dequeue();SeqQueue.javapublic class SeqQueue<T> implements QQueue<T> private Object element;private int front, rear;public SeqQueue(int length) if (length < 64)length = 64;this.element

10、= new ObjectMath.abs(length);this.front = this.rear = 0;public SeqQueue() this(64);public boolean isEmpty() return this.front = this.rear;public boolean enqueue(T x) if (x = null)return false;if (this.front = (this.rear + 1) % this.element.length) Object temp = this.element;this.element = new Object

11、temp.length * 2;int i = this.front, j = 0;while (i != this.rear) this.elementj = tempi;i = (i + 1) % temp.length;j+;this.front = 0;this.rear = j;return true;this.elementthis.rear = x;this.rear = (this.rear + 1) % this.element.length;return true;public T dequeue() if (isEmpty()return null;T temp = (T

12、) this.elementthis.front;this.front = (this.front + 1) % this.element.length;return temp;public String toString() String str = "("if (!isEmpty() str += this.elementthis.front.toString();int i = (this.front + 1) % this.element.length;while (i != this.rear) str += "," + this.elemen

13、ti.toString();i = (i + 1) % this.element.length;return str + ")"ts3.javaimport java.util.Scanner;public class ts3public static void main(String args) Scanner in = new Scanner(System.in);SeqQueue<Integer> queue = new SeqQueue(64);int num = -1;while(num != 0) num = in.nextInt();if (num % 2 = 0) if (queue.dequeue() = null) System.out.println("當(dāng)前隊(duì)列為空!"); else if (!queue.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論