最簡單的利用陣列實現
#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,分別表示三個...