鍊錶的簡易手寫實現

2021-10-05 03:22:12 字數 1963 閱讀 9439

package com.mydemo.writecases;

/** * 簡易鍊錶手寫實現

* @param */

public

class

ilinkedlist

public

inode

(e e)

public

inode

(e e,inode next)

@override

public string tostring()

}//虛擬頭結點

private inode dummyhead;

//長度

private

int size;

//構造方法

public

ilinkedlist()

//返回鍊錶長度

public

intgetsize()

//指定索引新增元素

public

void

add(e e,

int index)

inode prev =

this

.dummyhead;

for(

int i =

0; i < index; i++

) prev.next =

newinode

(e,prev.next)

; size++;}

public

void

addfirst

(e e)

public

void

addlast

(e e)

//刪除元素

public e remove

(int index)

inode prev =

this

.dummyhead;

for(

int i =

0; i < index; i++

)//獲取目標節點

inode targetnode = prev.next;

//重指向

prev.next = targetnode.next;

;//刪除引用關聯

targetnode.next = null;

size--

;return targetnode.e;

}public e removefirst()

public e removelast()

//按索引獲取元素

public e get

(int index)

inode prev =

this

.dummyhead;

for(

int i =

0; i < index; i++

)return prev.next.e;

}public e getfirst()

public e getlast()

//set方法

public

void

set(e e,

int index)

inode prev =

this

.dummyhead;

for(

int i =

0; i < index; i++

) prev.next.e = e;

}//contains方法

public

boolean

contains

(e e)

cur = cur.next;

}return

false;}

@override

public string tostring()

return stringbuilder.

tostring()

;}}

簡易手寫輸入法軟體的編寫

由於工作需要在無外網環境中實現手寫輸入法功能,在網上找了很多資料,大部分的手寫輸入法都不支援二次開發,在看了這一篇部落格以後,決定自己使用微軟現有的dll進行簡易輸入法的開發工作。首先使用微軟的inkcanvas控制項實現對使用者的墨跡進行收集,引用inkanalyzer類實現對墨跡的識別。this...

手寫實現基礎的reactive

看一下mdn對proxy的定義 proxy 物件用於定義基本操作的自定義行為 如屬性查詢 賦值 列舉 函式呼叫等 語法 const p newproxy target,handler 所以根據proxy的特性,我們可以看到,使用了proxy,我們 的預期性會變差。看一下proxy的基本用法 let ...

手寫實現Promise的全部功能

發現的問題 在此過程中,發現 自己對 函式中的this指向,和詞法環境 的一些細節沒有掌握好,實現過程很痛苦!解決 應該惡補 下面上 1 function promise executor 16 17 18 1920 function reject data 31 32 3334 35 execut...