typedef struct singlist
singnnode,*psingnnode;
typedef struct looplist
loopnode,*ploopnode;
//單向還需修改哈,搜尋的時候是返回前乙個位置還是當前位置
void csingnlist::inestmylist(psingnnode phead,int ndata,int nnum)
if ((pnewnode = new singnnode) == null)
pnewnode->ndata = ndata;
pnewnode->pnext = ptemp;//插在之前的位置
ptemp->pnext = pnewnode;
}void csingnlist::delmylist(psingnnode phead,int ndata)
ptemp_next = ptemp->pnext;
ptemp->pnext = ptemp_next->pnext;
delete ptemp_next;
}void csingnlist::printmylist(psingnnode phead)
}psingnnode csingnlist::serachmylist(psingnnode phead,int ndata)
else
}return null;
}psingnnode csingnlist::createmylist(int nnum)
phead->ndata = 0;
phead->pnext = null;
ptemp = phead;
for (int i = 0; i < nnum; i++)
pnewnode->ndata = i + 1;
ptemp->pnext = pnewnode;
pnewnode->pnext = null;
ptemp = pnewnode;
}return phead;
}
單向鍊錶的一些操作
writed by caolichen include include 定義單鏈表節點型別 typedef struct lnode slink 初始化線性表,即將表頭結點的表頭指標指向為空 null slink initlink slink head 建立線性表,輸入n個int型變數 void c...
單向鍊錶中的一些演算法
1.在乙個單向鍊錶中,尋找鍊錶中間節點。使用兩個指標,快指標每次步進為2,慢指標每次步進為1。當快指標到達鍊錶尾部時,慢指標指向的就是鍊錶的中間。node findmiddlenode node head return p1 2.在單向鍊錶中尋找倒數第n個元素 思路同1,使用兩個指標,它們之間保持n...
鍊錶的一些操作
判斷兩個鍊錶是否有交點 判斷兩個單鏈表是否相交,如果相交,給出相交的第乙個點 假設兩個鍊錶都不存在環 相交的煉表示意圖如下所示。兩個沒有環的鍊錶如果是相交於某一結點,如上圖所示,這個結點後面都是共有的。所以如果兩個鍊錶相交,那麼兩個鍊錶的尾結點的位址也是一樣的。程式實現時分別遍歷兩個單鏈表,直到尾結...