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...