資料結構與演算法系列(一)陣列實現

2022-05-02 03:09:07 字數 1951 閱讀 3983

注:這是乙個新的系列,主要是由於資料結構與演算法是程式設計師以後立身的根本,我以前在大學也學過,但是很快就忘記了,現在想把它撿起來,通過寫乙個系列文章,加深自己的理解,其實我寫這個系列主要是想先通過預熱,然後去刷leetcode。刷演算法本身是想鍛鍊自己寫程式的思維,不想因為每天寫業務**,導致自己思維僵化,此系列會與springboot系列同時更新,立個falg。

說明:陣列有兩個基本變數:

// 陣列申請空間的長度

private int size = 0;

// 陣列實際長度

private int count;

// 陣列實際儲存

private int array;

構造方法
/**

* 構造方法-初始化

* @param capacity 陣列初始化長度

*/public myarray(int capacity)

// 使用構造方法,初始化空間大小

myarray myarray = new myarray(6);

新增

注:新增本質上就是在連續的空間插入新的資料,我目前已知兩種

/**

* 根據索引在指定位置插入資料

* @param index 索引

* @param value 帶插入的值

*/protected boolean myarrayinsert(int index,int value)

// 判斷是否越界

if (index < 0 || index >= size)

// 迴圈,從插入的位置開始依次將資料向後移動,將index所指向的位置騰出來,方便插入新的資料

for (int i = count; i > index; i--)

array[index] = value;

count ++ ;

system.out.println("插入成功");

return true;

}

刪除:同新增,依然有兩種方法
/**

* 刪除指定位置的數

* @param index 索引

*/protected boolean myarraydel(int index)

for (int i = index; i < count - 1; i++)

count --;

system.out.println("刪除成功");

return true;

}

查詢:返回查詢成功之後資料的索引值
/**

* 陣列查詢

* @param value 待查詢的值

* @return 返回該值對應的索引

*/protected int myarrayfind(int value)

}system.out.println("查詢不成功,該數不存在");

return -1;

}

修改
/**

* 修改替換指定位置的資料

* @param index 指定位置索引

* @param value 值

* @return 是否修改成功

*/protected boolean myarraymodify(int index,int value)

array[index] = value;

return true;

}

列印輸出:為了方便查詢效果,提供列印方法
/**

* 陣列列印**/

protected void printall()

}

測試
public static void main(string args)

Java資料結構與演算法 一 陣列

1.無序陣列 package com.fantj.datastruct.array created by fant.j.2017 12 20 18 16 public class myarray public myarray int maxsize 新增資料 public void insert l...

資料結構與演算法系列 字典樹

一 背景 什麼是字典樹?trie樹,即字典樹,又稱單詞查詢樹或鍵樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計和排序大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 最大限度地減少無謂的字串比較,查詢效率比雜湊表高。trie的核心思想是空間換時間。利用字串的...

資料結構與演算法系列19 堆

堆其實就是一種特殊的樹,那它特殊在 呢?只要滿足了以下兩點的,我們就可以稱之為堆。1.堆是乙個完全二叉樹 2.堆中每乙個節點的值都必須大於等於 或者小於等於 其子樹中每個節點的值。這裡稍作解釋,對於第一點,我們前面講過,完全二叉樹就是除了最後一層,其他層的節點個數都是滿的,最後一層的節點都靠左排列。...