熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> 數據結構 >> 正文

數據結構概論之學習數據結構的意義

2013-11-15 15:44:59  來源: 數據結構 

  數據結構是介於數學計算機硬件和計算機軟件三者之間的一門核心課程
  在計算機科學中數據結構不僅是一般程序設計的基礎而且是設計和實現編譯程序操作系統數據庫系統及其它系統程序和大型應用程序的重要基礎
  學習數據結構既為進一步學習其他軟件課程提供必要的准備知識又有助於提高軟件設計和程序編制水平
  著名的瑞士計算機科學家沃思(NWirth)教授曾提出算法+數據結構=程序這裡的數據結構是指數據的邏輯結構和存儲結構而算法則是對數據運算的描述由此可見程序設計的實質是對實際問題選擇一種好的數據結構加之設計一個好的算法而好的算法在很大程序上取決於描述實際問題的數據結構請看下面的幾個例子
【例】八皇後問題
  八皇後問題源於幾百年前內容是這樣的在標准國際象棋棋盤上放上八個皇後使其互相不能夠攻擊這個問題是高斯最先提出的每一行每一列或一斜線上只能有一個皇後否則就違反了規則若不考慮旋轉對稱因素共有種解法
    在棋盤上的八皇後所處的位子它們恰恰不能夠彼此之間相互進攻 而且只要在棋盤上再多放一個皇後就會打破這種局面您可以按棋盤上方的按鈕查看下一種解法
 
【例】最短路徑
  舉例來說一些城市之間有道路相連道路的長度已知現在要求有這麼一個系統來滿足旅客提成的一些問題如一旅客要從A城到B城去旅行 他希望選擇一條總路程最短或是途中中轉次數最少的路徑
    您可以在指定的輸入框中輸入起點城市和終點城市的代號再按一下最短路徑的按鈕地圖上就會用紅線標出該兩城市間的最短路徑

【例】人機對弈問題
  計算機能夠和人進行對弈是因為有人將對弈的策略存入計算機而對弈是在一定規則下隨機進行的不僅要看棋盤當時的格局還要能夠預測將來將可能發生的趨勢這是一個相當復雜的問題不僅需要數據結構的知識還深入涉及到人工智能的領域我們在這裡舉一個實現簡單例子只是想說明數據結構的廣泛用途
  本例子稱為井字棋規則是這樣的兩人對弈棋盤是 x 的方格當一方的三個棋子占同一行同一列或同一對角線時便獲勝一般來說先手方有較大的主動權因此我們在這裡讓同學們先下子看看計算機是怎麼應付的
    請您和計算機比一比看誰的反應快請用鼠標點擊對應的方格您所下的棋子用表示計算機所下的棋子用 表示
    請別太大意了!計算機可不是那麼容易對付的

【例】Hanoi塔(河內塔)問題
  假設有三個分別命名為AB和C的塔座在塔座B上插有n個直徑大小各不相同依小到大編號為n的圓盤現要求將B軸上的n個圓盤移至塔座A上並仍按同樣順序疊排圓盤移動時必須遵循下列規則
  ) 每次只能移動一個圓盤
  ) 圓盤可以插在AB和C中的任一塔座上
  ) 任何時刻都不能將一個較大的圓盤壓在較小的圓盤之上


From:http://tw.wingwit.com/Article/program/sjjg/201311/23889.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.