順序表的實現

2021-10-04 10:36:10 字數 1879 閱讀 8806

#include #include #include #include #define rep(i, a, b) for(int i = a; i < b; i++)

#define rep_(i, a, b) for(int i = a; i <= b; i++)

#define sl(n) scanf("%lld", &n);

#define si(n) scanf("%d", &n);

#define repall(a) for(auto x: a)

#define cout(ans) cout << ans << endl;

typedef long long ll;

const int maxn = 1e5 + 10;

/** * this code has been written by yueguang, feel free to ask me question. blog:

* created:2019.10.21

* 順序表的實現

*/using namespace std;

template class seqlist

//一維陣列初始化

seqlist(t *rdata, int size)

else

for(int i = 0; i < size; i++)

}//返回長度

int getlength()

//按位置查詢

t floc(int i)

else

return data[i];

} //按值查詢

int fval(t rdata)

}return -1;

} //插入

int ins(t insdata,int inspla)

length++;

}else if(length >= maxn - 2)

else

} //刪除p位置上的元素

void delp(int p)

length--;

return ;

}else

} //刪除所有值為d的

void dald(t d)

length--; } }

printf("%d delements deleted\n",tmplen - length);

printf("now len = %d", length);

return ;

} //遍歷順序表輸出

void pri()

cout << '\n';

return ;

}};

int main()

cout << "使用一維陣列賦值\n";

seqlistfirst(inp, n);

cout << "輸出測試" << '\n';

first.pri();

cout << "輸出長度" << '\n' << first.getlength() << '\n';

cout << "輸入i值, 插入到j位置上" << '\n';

int i, j;

cin >> i >> j;

first.ins(i, j);

cout << "輸出測試" << '\n';

first.pri();

int k;

cout << "輸入k進行按位置查詢(0 <= k <= " << first.getlength() <<")" << '\n';

cin >> k;

cout << "查詢到 : " << first.floc(k) << '\n';

}

順序表的實現

使用c 實現一下常用的資料結構,參考書為 資料結構 演算法與應用 c 語言描述 此次 為順序表,為了保證通用性採用模板機制,演算法本身沒有什麼難度,畢竟是基礎演算法,但是長時間不用c 一些高階特性和陷阱著實讓人難受。此次 共分三個檔案 1 sq list.h 實現順序表的結構和基本操作。2 excp...

順序表的實現

順序表很簡單,表裡面有個陣列,陣列中實際元素的個數 長度 lengthsqlcurrent,還有就是初始大小變數。可以解決約瑟夫環問題。最核心的兩個方法 刪除和插入,這兩個過程要移動元素。核心 package com.ibm.jzy.seqlist public class sqlist imple...

順序表的實現

順序表的操作 time limit 1000ms memory limit 65536k description 建立乙個順序表,然後在已建好的順序表上實現順序表插入和刪除等基本操作。最後輸出最終結果。input 有多組測試資料,每組資料由三部分組成。第一部分包含兩個整數n n 1000 和m m ...