官术网_书友最值得收藏!

  • 數據結構(C++版)
  • 葉核亞編著
  • 1310字
  • 2018-12-27 18:16:29

習題1

1-1什么是數據、數據元素、數據項?三者之間是怎樣的關系?

1-2什么是數據結構?數據結構的概念包括哪三部分?

1-3數據結構與數據類型的概念有什么區別?為什么要將數據結構設計成抽象數據類型?

1-4數據的邏輯結構主要有哪三種?各有何特點?三者之間存在怎樣的聯系?

1-5數據的存儲結構有哪兩種?各有何特點?

1-6什么是算法?怎樣描述算法?怎樣衡量算法的性能?

1-7下列函數的功能是什么?

            void binary(int n)
            {
                whiIe(n>0)
                {   cout<<n<<",";
                  n/=2;
                }
            }

1-8確定下列算法中語句的執行次數,并給出算法的時間復雜度。

            int n=10, count=0;
            for(int i=1; i<=n; i++)
                for(int j=1; j<=i; j++)
                  for(int k=1; k<=j; k++)
                      count++;

實驗1 算法設計與分析

1.實驗目的

了解數據結構課程的目的、性質和主要內容,理解數據結構和算法的基本概念,熟悉算法的描述方法、算法時間復雜度和空間復雜度的分析和計算方法。

要求熟練使用Visual C++ 6.0集成開發環境進行C++程序的編輯、編譯和運行,程序必須運行通過并獲得正確結果,詳見第11章。

2.實驗內容

(1)實現以下對數組的操作,并給出算法的時間復雜度和空間復雜度。

            T max(T tabIe[],int n)                        //返回數組中的最大值
            T min(T tabIe[],int n)                        //返回數組中的最小值
            booI repIace(T tabIe[],int n,int x,int y)     //將n個元素的數組中值為x的元素替換為y值
            booI repIaceAII(T tabIe[],int n,int x,int y)  //將數組中所有值為x的元素替換為y值
            booI isSorted(T tabIe[],int n)                //判斷數組元素是否已按升序排序
            void reverse(T tabIe[],int n)                 //將數組元素a0,a1,…,an-1逆置為an-1,…,a1,a0

(2)用C++的類實現復數抽象數據類型。

(3)實現十進制、二進制、八進制和十六進制的相互轉換。

(4)螺旋方陣。

螺旋方陣將從1開始的自然數由方陣的最外圈向內螺旋方式地順序排列。例如,4階的螺旋方陣排列形式如下:

(5)楊輝三角。

中國南宋數學家楊輝在其《詳解九章算法》(1261年)中給出以下三角形(后世稱為楊輝三角),表中任何一個數字等于它肩膀上的兩個數字之和。n=5的楊輝三角如下:

楊輝三角的重要意義在于,其各行是二項式(a+bnn=0,1,2,…)展開式的系數表。n=2和n=3的展開式如下:

a+b2=a2+2ab+b 2a+b3=a3+3a2b+3ab2+b 3

要求分別采用一維數組、二維數組輸出楊輝三角。

(6)下標和相等的數字方陣。

(7)輸出n個元素的全排列。

n=3時,數據序列{1, 2, 3}的全排列為:123,132,213,231,312,321。

(8)設計一個矩陣類,構造n階矩陣,實現矩陣加、乘、轉置等運算,并求各算法的時間復雜度。

(9)實現直接選擇排序。

(10)幻方。

n階幻方(magic square)是指將自然數1~n2排列成n×n階方陣,其各行、各列及各對角線上的數字之和相等,和數S=nn2+1)/2。洛書(傳說大禹治水時洛水神龜所獻)上的3階幻方和楊輝的4階幻方如圖1.11所示,3階幻方的和數為15,4階幻方的和數為34。

圖1.11 3階和4階幻方

幻方有許多構造方法。楊輝在《續古算法摘奇》(1275年)中給出解法,“九子斜排,上下對易,左右相更,四維挺出”,如圖1.12所示。

圖1.12 楊輝的幻方構造法

連續擺數法(也稱暹羅法)適用于構造奇數階幻方,構造過程如圖1.13所示。

圖1.13 連續擺數法構造奇數階幻方

連續擺數法構造規律說明如下:

① 約定初始位置為第1行中間,放置1。

② 向當前位置的右上方順序放置下一個數。將幻方陣沿行、列方向看成環形。

③ 若當前放置數為n的倍數,即一條對角線已滿,則下一個數的位置是本列的下一行。

④ 輸出幻方陣。

要求采用連續擺數法構造并輸出指定奇數階的幻方陣。

主站蜘蛛池模板: 鄂托克前旗| 高雄县| 乐平市| 比如县| 尤溪县| 和田县| 东乡| 龙川县| 获嘉县| 嘉兴市| 德阳市| 新巴尔虎右旗| 衡南县| 吉木萨尔县| 海盐县| 海阳市| 泽普县| 宜城市| 隆德县| 曲阳县| 日土县| 庆阳市| 藁城市| 苗栗县| 郴州市| 砀山县| 灌云县| 临沭县| 邢台市| 和龙市| 深水埗区| 富裕县| 禄丰县| 大关县| 潮州市| 皋兰县| 南岸区| 定边县| 德庆县| 左贡县| 萍乡市|