程式設計實現下面的棧頂操作:
class mydata
;
解析:顯然這裡需要實現棧的3種基本操作,即進棧、出棧以及判空。為了方便起見,使用單鏈表結構實現棧並且使用類的形式來定義站內及其節點。首先是節點類和棧類的具體定義,程式**如下:
#include using namespace std;
class mydata
//預設建構函式
mydata(int value) : data(value), next(null){} //帶引數的建構函式
int data; //資料域
mydata *next; //下乙個節點
};class mystack
//預設建構函式
void push(mydata data); //進棧
void pop(mydata *pdata); //出棧
bool isempty(); //是否為空
mydata *top; //棧頂
};
由於不能直接操作棧底,因此這裡沒有定義棧底的指標。在mystack的默 面試題 實現單鏈表的逆序
思路 1.找到頭結點 2.依次遍歷每個結點,並且每次都插到第乙個結點之後 3.頭結點.next null 稱為尾節點 迴圈方式 實現 list func list head list pre head 把頭結點給了pre list cur pre.next list tmp 定義乙個結點以便迴圈幅值...
面試題 單鏈表反轉
問題 定義乙個函式,輸入乙個鍊錶的頭結點,反轉該鍊錶並輸出反轉後鍊錶的頭結點。一 非遞迴演算法 假設有鍊錶a b c d e f g。在反轉鍊錶過程中的某一階段,其鍊錶指標指向為 a b c d e f g。也就是說在結點d之前的所有結點都已經反轉,而結點d後面的結點e開始的所有結點都沒有反轉。這樣...
單鏈表的面試題
自定義標頭檔案部分 void deletenottail pnode pos 刪除乙個無頭單鏈表的非尾節點 void insertnothead pnode phead,pnode pos,datatype data 在無頭單鏈表的乙個非頭節點前插入乙個節點 void josephcircle pn...