1. 程式人生 > >課下作業(補做)

課下作業(補做)

提交 linklist i節點 let 方法 使用 輸出 指針 blog

課下作業(補做)

相關知識點的總結

排序

程序中經常會遇到需要對鏈表按照某種大小關系排序,Collection類提供的對於排序和查找的類方法如下:

public static sort(List<E> list)----將list中的元素按升序排列

int binarySearch(List<T> list,T key,CompareTo<T> c)---使用折半查找法查找list是否含有和參數key相等的元素。

  • 有類的源代碼,針對某一成員變量排序,讓類實現Comparable接口,調用Collection.sort(List)
  • 沒有類的源代碼,或者多種排序,新建一個類,實現Comparator
    接口 調用Collection.sort(List, Compatator)

單鏈表

數據結構:單鏈表基本操作

涉及到單鏈表的基本操作有如下:

  • int initList(linkList *);  初始化一個單鏈表,具有頭指針,頭結點,頭結點->next=NULL;
  • int createListHead(linkList *, int n);  頭插法創建一個鏈表,鏈表長度為n;
  • int createListTail(linkList *, int n);  尾插法創建一個鏈表,鏈表長度為n;
  • int getlength(linkList *);  獲取單鏈表的長度;
  • int printList(linkList *);  打印整個鏈表;
  • int getElem(linkList ,int i,ElemType );  獲取鏈表中第i個位置處節點的數據元素;
  • int insertList(linkList *, int i, ElemType data);  在鏈表的指定位置(i節點)插入一個節點,i的範圍為1~length(鏈表總長度);
  • int insertListTail(linkList *, ElemType data);  給鏈表追加一個節點,在最末尾處增加;
  • int deleteList(linkList , int i, ElemType data);  刪除指定位置(i節點)處的節點,i的範圍為1~length(鏈表總長度);
  • int clearList(linkList *); 刪除整個鏈表,使頭結點->next=NULL;

課上內容的補做,結果截圖

1. 排序

針對下面的Student類,使用Comparator編程完成以下功能:
1. 在測試類StudentTest中新建學生列表,包括自己和學號前後各兩名學生,共5名學生,給出運行結果(排序前,排序後)
2. 對這5名同學分別用學號和總成績進行增序排序,提交兩個Comparator的代碼

技術分享圖片

2. 單鏈表

public class MyList {
    public static void main(String [] args) {
        //選用合適的構造方法,用你學號前後各兩名同學的學號創建四個結點
        
        
        //把上面四個節點連成一個沒有頭結點的單鏈表
        
        //遍歷單鏈表,打印每個結點的

        //把你自己插入到合適的位置(學號升序)

        //遍歷單鏈表,打印每個結點的

        //從鏈表中刪除自己

        //遍歷單鏈表,打印每個結點的
    }
}

技術分享圖片

教材第十五章的編程題目

(1)使用堆棧結構輸出an的若幹項,其中an=2an-1+2an-2,a1=3,a2=8

技術分享圖片

(2)編寫一個程序,將鏈表中的學生英語成績單存放到一個樹集中,使得按程序自動排序,並輸出排序結果

技術分享圖片

(3)有10個U盤,有兩個重要的屬性:價格和容量。編寫一個應用程序,使得TreeMap

技術分享圖片

課下作業(補做)