在c#中模擬庫中已存在的集合,鍊錶linkedlist。可以做新增、插入等操作
可以先寫乙個鍊錶介面,然後再去實現介面的功能
inte***ce ilist
//建立乙個索引器
t getele(int index); //根據索引來得到元素
int locate(t value); //根據元素值,從前往後找到對應索引
}再建立乙個節點類(為了方便,這裡直接初始化節點類的資料)
class node
實現介面功能
class linklist:ilist
else
temp.next = newnode;}}
//取得鍊錶長度,直接返回count
public int getlength()
public void clear()
//判斷鍊錶是否為空,返回乙個bool值
public bool isempty()
//(先寫索引器方法再寫插入方法,請先看索引器**)
//插入先考慮使用者輸入的索引值越界情況,然後再做,定義乙個新的節點,
//如果索引值為0,則新節點為頭節點,否則定義乙個臨時變數為頭節點,for迴圈遍歷到使用者輸入索引值前面一位的節點,再得到當前索引節點,將新節點插入到兩者之間
public void insert(int index, t item)
else
nodeprenode = temp;
nodecurnode = temp.next;
prenode.next = newnode;
newnode.next = curnode;}}
}//刪除操作 如何索引值為零,head = head.next,否則然後再遍歷到index前面一位的節點,得到index節點和其後面的乙個節點
//將index-1的節點和index+1的節點連線
public t delete(int index)
count--;
nodetemp = new node();
temp = head;
if (index == 0)
else
nodeprenode = temp;
nodecurnode = temp.next;
nodenextnode = temp.next.next;
prenode.next = nextnode;
}return this[index];
}//索引器,根據index返回值,只需要get方法
public t this[int index]
return temp.data;}}
public t getele(int index)
}public int locate(t value)
temp = temp.next;
}return targetindex;
}public void showall()
console.writeline();
console.writeline("length:"+count);
}//將鍊錶反向輸出,遞迴方法
//public void reverselist(nodenode)
//}//將鍊錶反向輸出,將鍊錶中資料壓棧,再出棧
public void reverselist()
for (int i = 0; i < count; i++)
}
C 自定義控制項和自定義事件
今天在專案開發的過程中,因為好幾個頁面都要用到同乙個分類控制項,就想著把它做成乙個自定義控制項,然後隨託隨用。在網上找了些列子,自定義控制項的寫法不用多說,主要說一下,如何將控制項的事件,封裝到自己定義的控制項的自定義事件裡面。這裡同時也當作對自定義事件的乙個複習吧。首先控制項是乙個由treelis...
C 自定義控制項
做radiobutton button textbox的自定義控制項 先在工程分別新增3個類 然後分別在類裡面寫 diybutton.cs diytextbox.cs diyradiobutton.cs 寫好自定義控制項後就開始更改一些地方 窗體下有個窗體名.designer.cs開啟這個 檔案 更...
C 自定義特性
code1 using system using system.collections.generic using system.linq using system.text namespace mylibrary.attributeclass 對於位置引數,通常只提供get訪問器 public s...