templatestruct lnode
;templateclass linklist
;templatelinklist::linklist()
templatelinklist::~linklist()
}templatebool linklist::initlist()
m_plist->data = null;
m_plist->next = null;
return true;
}templatebool linklist::destroylist()
delete m_plist;
return true;
}//在鍊錶中插入乙個節點,插入之後在鍊錶中的位置為beforewhich
templatebool linklist::insertnode(int beforewhich, t data)
if (!getnode(beforewhich - 1, &pprevious))
lnode*newnode = new lnode;
newnode->data = data;
newnode->next = pprevious->next;
pprevious->next = newnode;
m_listlength++;
return true;
}//刪除鏈結中的指定節點
templatebool linklist::deletenode(int position)
lnode*pprevious = null;
if (!(getnode(position - 1, &pprevious)))
lnode*pcurrent = pprevious->next;
pprevious->next = pcurrent->next;
delete pcurrent;
m_listlength--;
return true;
}//獲取鍊錶中指定的節點
templatebool linklist::getnode(int position, lnode** node)
lnode*pnext = m_plist;
for (int i = 1; i <= position; i++)
*node = pnext;
return true;
}//判斷鍊錶是否為空
templatebool linklist::isempty()
return false;
}//獲取鍊錶中節點的個數
templateint linklist::getlength()
//清空鍊錶
templatebool linklist::clearlist()
lnode*pnode = m_plist->next;
lnode*ptemp = null;
while (pnode)
m_listlength = 0;
return true;
}//設定鍊錶中指定節點的資料
templatebool linklist::setnodedata(int position, t newdata)
pnode->data = newdata;
return true;
}//獲取鍊錶中指定節點的資料
templatebool linklist::getnodedata(int position, t& data)
data = pnode->data;
return true;
}//鍊錶反轉
templatebool linklist::reversal()
m_plist->next = plast;
return true;
}
C 實現線性表(鍊錶描述)
本文使用c 實現了乙個線性表 陣列描述 該程式由三個檔案構成,第一部分是標頭檔案,標頭檔案定義了乙個鍊錶的節點的結構體,同時在該結構體的基礎上定義了乙個線性表類,該抽象類中定義了絕大部分線性表的成員函式,其中包括 確定線性表是否為空 確定線性表中資料的數目 新增乙個資料 按乙個給定索引查詢其對應的元...
C 線性鍊錶
鍊錶,不能像陣列一樣,只要知道下標就能訪問,而是,乙個個的順著鍊子訪問。例 單鏈表的節點類模版 lb1.h templateclass node 節點類 類的實現部分 template 建構函式,初始化資料和指標成員 node node const t item,node ptrnext data ...
線性鍊錶 C語言實現
include include define error 0 define ok 1 define equal 1 define overflow 1 define list init size 100 define listincrement 10 struct stustu 50 typedef...