陣列元素原地逆置

2021-09-08 18:31:25 字數 1977 閱讀 8697

最簡單的利用陣列實現

#includeusing namespace std;

const int arraysize=30;

int main()

for (int i = 0; i 用結構體實現

#include#includeusing namespace std;

#define listsize 30

//函式狀態碼定義

#define true 1

#define false 0

#define ok 1

#define error 0

#define infeasible -1 //不可行

//#define overflow -2 //溢位

typedef int elementtype;

typedef int status;

typedef struct seqlist;

status createlist(seqlist*l,int length);

void printseqlist(seqlist*l)

cout << endl; }}

status createlist(seqlist*l,int length)

else

printseqlist(l);

cout << "建立成功!" << endl;

return true; }}

void reverse_seqlist(seqlist*l)

cout << "原地逆置結果:" << endl;

printseqlist(l); }}

int main()

用類模板實現

標頭檔案「seqlist.h」

#include#include#includeusing namespace std;

const int defaultsize = 100;

#define true 1

#define false 0

typedef int status;

typedef int element;

templateclass seqlist

status createseqlist(seqlist& l,t m, t n);

void printseqlist(seqlist&l);

void reverseseqlist(seqlist&l);

private:

element*data;

t maxsize;//陣列總的儲存空間

t size; //資料元素個數

};templatestatus seqlist::createseqlist(seqlist&l, t m,t n)

} printseqlist(l);

return true;

}templatevoid seqlist::printseqlist(seqlist&l)

templatevoid seqlist::reverseseqlist(seqlist&l)

cout << "原地逆置成功!" << endl;

cout << "結果:" << endl;

printseqlist(l);

}#pragma once

源.cpp

第三種實現時 遇到乙個超級坑的bug:

c++中的類的成員函式和成員變數不能用->來訪問(需要定義類成員訪問函式operator ->)必須用成員運算子"."來訪問。。。害得我想了半天。。。

還好今天總算 把類模板給搞清楚了。

共享陣列原地逆置

偶然在一本書上看到這樣一道題覺得聽一意思的就拿來做了一下,題目是這樣設定的 在已知一維陣列a m n 中一次存放兩個線性表 a1,a2,a3,a4 am b1,b2,b3 bn 試寫出乙個函式將兩個順序表位置互換,即由 a,1,a2,a3,a4.am,b1,b2,b3.bn 轉換成 b1,b2,b3...

m n原地逆置

problem 乙個長度為m n的線性表,將後n個元素轉換到m個元素之前並輸出結果,要求最少時間複雜度 配置環境 visual studio 2019 enterprise define crt secure no warnings include include void swap int a,i...

單鏈表原地逆置

題目 是編寫演算法將帶一單鏈表逆置,要求空間複雜度為o 1 o 1 o 1 分析 單鏈表分為帶頭節點和不帶頭節點兩種,逆置思路有兩種,第一種是採用頭插法重新建立新的單鏈表,該方法直接遍歷鍊錶,每次將當前結點新增到新鍊錶的頭部 第二種是通過該錶 next指標,定義三個指標 pre,p,r,分別表示三個...