資料結構之鍊錶
泛型介面
類(屬性、對c#構造器的理解)
(有了這些知識,**很快就能看懂,這些知識不熟的話,要看好久)
新建乙個類,用於存放節點類
namespace singlelinkedlist
set
}public nodenextnode
set
} #endregion
#region 節點的構造器
public node()
//構造器重載
public node(t value)
public node(nodenext)
//構造器鏈
public node(t value, nodenext):this(value)
#endregion}}
新建乙個介面,規定單鏈表應該具有的方法
namespace singlelinkedlist
//過載「」操作符
int getlength();
void clear();
bool isempty();
void add(t element);
void insert(t element, int index);
t remove(int index);
int find(t element);
void sort();}}
新建乙個類,用於存放單鏈錶類,並實現介面方法
using system;
namespace singlelinkedlist
#region 介面方法
public t this[int index]
return temp.data;}}
public int getlength()
public void clear()
public bool isempty()
public void add(t element)
else
}temp.nextnode = newnode;
}count++;
}public void insert(t element, int index)
nodeindexnode = tempnode.nextnode;//index所對應的節點
tempnode.nextnode = newnode;//temp節點的下乙個節點為新節點
newnode.nextnode = indexnode;//新節點的下乙個節點為index節點
count++;
}public t remove(int index)
data = tempnode.nextnode.data;
count--;
if (index == count - 1)//考慮特殊情況,這種情況也可以省略
else
return data;
}public int find(t element)
}return index;
}public void sort()
#endregion}}
using system;
using system.collections.generic;
namespace singlelinkedlist
console.writeline("單鏈表的結果:");
slinkedlist.insert(100,3);
slinkedlist.remove(20);
int index= slinkedlist.find(88);
for (int i = 0; i < slinkedlist.getlength(); i++)
console.writeline("查詢結果:"+index);
console.writeline("對比陣列的結果:");
C 單鏈表實現
1 單向鍊錶 單向鍊錶 include include class cnode 節點類 class clist 鍊錶類 cnode movetrail cnode pnode 移動到尾節點 return ptmp void addnode cnode pnode 新增節點 else m nodesu...
c 實現單鏈表
include include using namespace std typedef int datatype struct linknode 建立乙個節點 class slist void swap slist s slist const slist s head null tail null ...
單鏈表(C實現)
ifndef list h define list h typedef struct node node typedef struct list list initlist int insertlist list l,void data,int size node findnodebykey lis...