#include
#define size 40
using namespace std;
/*實現乙個棧,用於後面將鍊錶中的元素先壓棧再彈出棧實現反向列印的功能*/
int stack[size];
int top=0;//棧頂指標
//判空
int is_empty()
//判滿
int is_full()
//壓棧
void push(int data)
//彈棧
int pop()
/*實現乙個帶頭節點與尾節點的單向鍊錶*/
//如果頭節點為空,說明這是每乙個節點,也是最後乙個節點
if(m_head==null)
//如果頭節點不為空,追加節點為尾節點
else*/}
//在index之後插入資料功能的實現
void insert(size_t index,int data)}
//如果找不到則拋異常
throw overbound();}
//刪除指定位置的節點的實現
void erase(size_t index)
//定義乙個臨時節點用於儲存要刪除節點的前乙個節點,以便將其m_next指標指向刪除節點的m_next指向位址。
node *findpre;
for(node *find=m_head;find;find=m_head->m_next)
index--;
}throw overbound();}
//獲得鍊錶的長度
int getlength()
//反向列印,呼叫後面的遞迴函式來實現
void rprint(void)const
//反向列印,陣列來實現
void backward()
for(i=len-1;i>=0;i--)
//呼叫逆轉
void reverse()
private:
//定義乙個內部節點類
class node
int m_data;//資料
node *m_next; //下乙個節點的指標
};//定義乙個內部異常類
class overbound:public exception
};//反向列印以head為首的子鍊錶,採用遞迴來實現
void rprint(node *head)const
}//鍊錶的逆轉功能實現
void reverse(node *head)
s->m_next = p;
m_tail=head;
m_head=s;}
//鍊錶資料成員
node *m_head;//煉表頭指標
node *m_tail;//鍊錶尾指標
size_t m_length;//鍊錶長度 };
}
迴圈單鏈表的實現以及相關操作
如果有不足之處我會加以改正,都是個人理解難免有錯誤的地方請諒解。由之前的單鏈表 雙鏈表在到迴圈鍊錶三個鍊錶之間有很多重複和相似的地方。大體的邏輯關係是一致的,不同地方在於首位和每個節點之間的關係 單鏈表 每個節點之間依靠指標鏈結 方向為頭 尾 頭節點和尾節點 next均為null雙鏈表 每個節點之間...
單鏈表的建立以及功能的實現
include include include typedef intdatatype typedef struct nodelistnode,linklist listnode p linklist head 注意 定義結點結構時,有幾點需要注意 linklist和listnode 是不同名字的同...
前端分頁功能的實現以及原理
原文 點我 定義乙個分頁方法,可多次呼叫 引數設定 請求資料頁面跳轉方法 建立非數字按鈕和資料內容區 建立數字按鈕 首屏載入 呼叫 function paginationnick opt 幾個必填的容器class,和幾個可以修改的預設資料引數 var pager pager extend pager...