作业--day41

利用模板类完成顺序表

cpp 复制代码
#include <iostream>

using namespace std;

//模板类
template <typename T>
class SeqTab{
    T arr[20];
    int maxsize;
public:
    SeqTab():maxsize(0){}
    void Insert(T a);
    void Search(T a);
    void Delete(int index);
    void Show();
};

//尾插
template <typename T>
void SeqTab<T>::Insert(T a){
    if(maxsize == 20){
        cout << "FULL" << endl;
        return;
    }
    arr[maxsize] = a;
    maxsize++;
}

//显示所有值
template <typename T>
void SeqTab<T>::Show(){
    for (int i=0; i<maxsize; i++) {
        cout << arr[i] << ' ';
    }
    cout << endl;
}

//删除指定数组下标的值
template <typename T>
void SeqTab<T>::Delete(int index){
    if(maxsize == 0){
        cout << "NULL" << endl;
        return;
    }
    for (int i=index; i<maxsize-1; i++) {
        arr[i] = arr[i+1];
    }
    maxsize--;
}

//查找值
template <typename T>
void SeqTab<T>::Search(T a){
    if(maxsize == 0){
        cout << "NULL" << endl;
        return;
    }
    for (int i=0; i<maxsize; i++) {
        if(arr[i] == a){
            cout << "arr[" << i << "]=" << a <<endl;
            return;
        }
    }
    cout << "NOT FOUND" << endl;
}

int main()
{
    SeqTab<int> seq;
    for (int i=0; i<20; i++) {
        seq.Insert(i);
    }
    seq.Show();
    seq.Insert(20);
    seq.Delete(0);
    seq.Show();
    seq.Insert(20);
    seq.Show();
    seq.Search(5);
    return 0;
}

思维导图

相关推荐
StudyWinter20 分钟前
【C++】仿函数和回调函数
开发语言·c++·回调函数·仿函数
君鼎2 小时前
Effective C++ 条款55:熟悉Boost库
c++
Zafir20243 小时前
Qt实现TabWidget通过addTab函数添加的页,页内控件自适应窗口大小
开发语言·c++·qt·ui
阿巴~阿巴~3 小时前
深入解析C++非类型模板参数
开发语言·c++
多吃蔬菜!!!3 小时前
vscode 搭建C/C++开发环境搭建(linux)
linux·c语言·c++
小指纹5 小时前
河南萌新联赛2025第(六)场:郑州大学
java·开发语言·数据结构·c++·算法
岁忧6 小时前
(nice!!!)(LeetCode 每日一题) 1277. 统计全为 1 的正方形子矩阵 (动态规划)
java·c++·算法·leetcode·矩阵·go·动态规划
咔咔咔的6 小时前
679. 24 点游戏
c++
the sun346 小时前
Reactor设计模式及其在epoll中的应用
linux·运维·服务器·c++
Davis_12197 小时前
代码随想录算法训练营27天 | 56. 合并区间、738.单调递增的数字、968.监控二叉树(提高)
数据结构·c++·算法·leetcode·贪心算法