逆置單鏈表,C 封裝實現,經過測試。

2021-07-11 10:43:55 字數 1627 閱讀 2058

已知:煉表頭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...