自己寫的一些單向鍊錶操作

2021-05-25 03:18:09 字數 1056 閱讀 5490

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

鍊錶的一些操作

判斷兩個鍊錶是否有交點 判斷兩個單鏈表是否相交,如果相交,給出相交的第乙個點 假設兩個鍊錶都不存在環 相交的煉表示意圖如下所示。兩個沒有環的鍊錶如果是相交於某一結點,如上圖所示,這個結點後面都是共有的。所以如果兩個鍊錶相交,那麼兩個鍊錶的尾結點的位址也是一樣的。程式實現時分別遍歷兩個單鏈表,直到尾結...