詳解鍊錶的轉置問題

2021-05-26 15:47:13 字數 1092 閱讀 9689

//題目:                      ------------------鍊錶的轉置------------------------

// 要求:

//      將鍊錶的就地轉置。就是將鍊錶的資料儲存倒置

//例:

//     輸入:12345678910

//     輸出:10987654321

// 演算法分析:

//         程式最主要的地方再於將頭接點的後的每個接點都放再頭接點的前面。直到頭接點到達

//         尾接點。記完成了鍊錶的轉置。

// 演算法複雜度分析:

//         只是將每個接點前移所以複雜度就鍊錶的長度。o(n);

// 程式分析:

//          程式採用的時c++實現的方式;時用類實現每個接點。程式中用到了可利用空間表,從而加快了

//          程式中要刪除接點再生成接點的速度。採用c++的過載new和delete函式。也用到了靜態的類成員

//          資料成員用來實現可利用空間表。

#include 

using namespace std;

//資料接點的類的實現。

template

class list

list(list* nextval=null)

void* operator new(size_t);//new過載函式的宣告。

void operator delete(void*);//delete過載函式的宣告。

~list(){};

};template

list* list::freelist=null;// 靜態類資料成員的初始化。

// new 過載函式的實現。記得因為是模板函式。所以要記得返回的時候時不指向任何型別的。

// 當你再用到new函式時它就能重新指向你需要的型別。

template

void* list::operator new(size_t)

注:這是我學習資料結構時候寫的實驗習題。其中有很詳細的講解。希望有不懂這個問題的人看了能

知道怎麼樣去實現鍊錶的轉置。

詳解鍊錶的轉置問題

題目 鍊錶的轉置 要求 將鍊錶的就地轉置。就是將鍊錶的資料儲存倒置 例 輸入 12345678910 輸出 10987654321 演算法分析 程式最主要的地方再於將頭接點的後的每個接點都放再頭接點的前面。直到頭接點到達 尾接點。記完成了鍊錶的轉置。演算法複雜度分析 只是將每個接點前移所以複雜度就鍊...

鍊錶的轉置

class lnodepublic static void reversem1 lnode head lnode pre null 前驅結點 lnode cur null 當前結點 lnode next null 後繼結點 把鍊錶首結點變為尾結點 cur head.next next cur.nex...

順序表轉置

public class converse reverse arr public static void reverse int array for int i 0 i 思想 一般來說最笨的方法是從原陣列中從後往前取出資料,放入另乙個新的陣列中。這種方法是最容易想到的,但是無論是時間複雜度空間複雜度...