C 實現線性鍊錶

2021-08-02 18:41:26 字數 1929 閱讀 9968

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