按照視點的不同,資料結構分為邏輯結構和物理結構。
資料物件中資料元素之間的相互關係
集合結構
線性結構
樹形結構
圖形結構
資料的邏輯結構在在計算機中的儲存形式
順序儲存結構
鏈式儲存結構
基本資料型別
抽象資料型別(adt abstract data type)
演算法的特性:
輸入輸出
有窮性確定性
可行性演算法效率的度量:
時間複雜度
空間複雜度
定義:零個或多個資料元素的有限序列。線性表中的元素為空時,稱為空表。當存在n個元素時,便有前驅節點和後繼節點的說法。
線性表中通常使用抽象資料型別,便於對資料進行操作。
/**
物件:物件時類的乙個例項,有狀態和行為
類:類是乙個模板,它描述一類物件的行為和狀態
**/
package listtest;
/** * 建立線性表及其相關操作
* 線性表的抽象資料型別定義如下:
* adt
* data
* 線性表的資料物件集合為,每個元素的型別均為datatype.其中,
* 除第乙個元素a1外,每個元素有且只有乙個直接的前驅元素,除了最後乙個元素an外,
* 每個元素有且只有乙個直接後繼元素。資料元素之間的關係時一對一的關係。
* operation
* initlist(*l): 初始化操作,建立乙個空的線性表l
* listempty(l): 若線性表為空,返回true,否則返回false
* clearlist(*l): 將線性表清空
* getelem(l,i,*e): 將線性表l中第i個位置元素返回給e
* 返回該元素在表中序號表示成功;否則,返回0表示失敗
* listdelete(*l,i,*e):刪除線性表l中第i個位置元素,並用e返回其值
* listlength(l): 返回線性表l的元素個數
* endadt
*//**
* 順序儲存鍊錶 以下**來自網上
*/public class sequencelist
/*** 初始化線性表
*/public sequencelist(int initialsize)
else
}/**
* 判斷線性表是否為空
*/public boolean isempty()
system.out.println("表不為空");
return false;
//return this.length==0 也可以直接這樣
}/**
* 清空線性表
*/public void clearlist()
/***獲取第i個位置的元素值
*/public t getelem(int i)
if(i<1||i>this.length)
system.out.println("資料獲取成功!");
return (t) data[i-1];
}/**
* 查詢元素,返回值為該元素位置,0代表查詢失敗
*/public int locateelem(t e)
}system.out.println("查詢失敗!");
return 0;
}/**
* 在第i個位置插入新元素
*/public boolean listinsert(int i,t e)
if(this.length==this.maxsize)
if (i<=this.length)
this.data[i-1]=e;
this.length++; //表長改變勿忘
system.out.println("插入成功!");
return true;
}/**
* 刪除第i個位置的元素,並用e返回其值
*/public t listdelete(int i)
if(i<1||i>this.length)
t e=(t) this.data[i-1];
if(i對於順序儲存結構,刪除除和插入的時間複雜度的考量:
最好情況:插入和刪除最後乙個元素,前面的不動,時間複雜度為o(1)
最壞情況:插入和刪除第乙個元素,那後面的元素就需要向後或向前移動n-1次,時間複雜度為o(n)
平均情況:元素插入到第i個位置或刪除第i個元素,需要移動n-i個元素。最終平均移動次數和最中間的那個元素的移動次數相等,為(n-1)/2
平均時間複雜度還是o(n)
mysql 第一天 MySQL 系列第一天
mysql 系列第一天這篇文章是黑馬程式設計師 mysql 教程的筆記,好好學習哦。和 mysql 資料庫的互動 客戶端單向連線認證 連線伺服器,認證身份。mysql 資料庫屬於 c s 架構,所以開啟伺服器程式後,需要通過客戶端連線它。mysql 會自帶乙個客戶端程式,可以直接輸入賬號和密碼即可連...
上班第一天
上班第一天啊,沒有去上班。早上起的很早,快走的時候突然很不想去。最後決定不去了。早上肯定也沒有什麼事情,無非就是開會,改革之類的話,這種話年年都說,年年都是老樣子。小寶說今天他訂婚,早上還去上班,誰知道是真是假呢。今天是正月初八,30年前我爸和我媽結婚了。現在過年只剩下最重要的一件事情,陪爸媽坐坐,...
開學第一天
今天開學的第一天,心裡些許興奮,畢竟我的第一步還是邁出了。上午大家都進行了簡短的自我介紹,從中了解的其他人的一些故事。每乙個來黑馬的學員背後都有這樣或者那樣的故事。倒是很欽佩其中的一位大姐,她頗具傳奇色彩。而且現在是一位兩歲孩子的母親,她現在所有的壓力或許比我們在座的任何一位學員壓力都要大的多。從她...