已知:煉表頭head, 第乙個節點為head->pnext
方法:逆置操作的空間複雜度和時間複雜度:
1)空間複雜度是o(2),2個輔助指標:node* curnode和node* nextnode;
2)時間複雜度是o(n),n是鍊錶的節點總數。
cmylist類實現鍊錶的封裝
1)建立鍊錶
2)逆置鍊錶
3)列印鍊錶
4)析構時自動釋放鍊錶
main函式實現
1)程式通過argv(只)接收數字(int)的鍊錶資料
2)然後根據接收的數字,通過cmylist物件建立內部鍊錶
3)列印鍊錶
4)逆置鍊錶
5)列印逆置後的鍊錶
6)退出程式。
#ifndef __blueskyjoyn_reverselist_h__
#define __blueskyjoyn_reverselist_h__
#include #include using namespace std;
namespace blueskyjoyn
datatype data;
struct node* pnext;
};class cmylist;}
#endif
#include "reverselist.h"
#include #include namespace blueskyjoyn
cmylist::~cmylist()
void cmylist::destroy()
delete m_head;
m_head = null; }}
node* cmylist::create(datatype array, int count)
destroy();
m_head = new struct node(0, null);
assert(m_head != null);
m_head->pnext = null;
struct node* tail = null;
for (int i = 0; i < count; ++i) }
node* cmylist::gethead()
node* cmylist::reverse()
struct node* curnode = m_head->pnext;
struct node* nextnode = null;
m_head->pnext = null;
while(curnode != null)
cout
while(tmp)
cout<
執行測試:
1)容錯測試
2)功能測試驗證
通過測試實現逆置鍊錶的基本功能。
(end)
單鏈表逆置實現(C )
對於單鏈表的逆置有兩種方法可以實現 1 利用輔助指標實現 基本思想 在遍歷結點的過程中,設定輔助指標,用於記錄先前遍歷的結點。這樣依次遍歷的過程中只需修改其後繼結點的next域即可。實現 如下 typedef int datatype 型別定義 typedef struct nodelinkedno...
單鏈表的逆置 C 實現
對於單鏈表的逆置有兩種方法可以實現 1 利用輔助指標 基本思想 在遍歷結點過程中,設定輔助指標,用於記錄先前遍歷的結點。這樣依次編譯的過程中只需修改其後繼結點的next域即可。實現 cpp view plain copy print typedef int datatype 型別定義 typedef...
單鏈表的逆置 C 實現
文章出自 對於單鏈表的逆置有兩種方法可以實現 1 利用輔助指標 基本思想 在遍歷結點過程中,設定輔助指標,用於記錄先前遍歷的結點。這樣依次編譯的過程中只需修改其後繼結點的next域即可。實現 cpp view plain copy print?typedef intdatatype 型別定義 typ...