作业--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;
}

思维导图

相关推荐
利刃大大2 分钟前
【c++中间件】redis介绍 && redis-plus-plus库使用
c++·redis·中间件
永不停转7 分钟前
关于 QGraphicsItemGroup 内部项目发生变化后group重新定位的问题
c++·qt
IT永勇1 小时前
C++设计模式-装饰器模式
c++·设计模式·装饰器模式
Murphy_lx1 小时前
std_ofstream
c++
草莓熊Lotso1 小时前
红黑树从入门到进阶:4 条规则如何筑牢 O (logN) 效率根基?
服务器·开发语言·c++·人工智能·经验分享·笔记·后端
啊董dong1 小时前
课后作业-2025年11月23号作业
数据结构·c++·算法·深度优先·noi
带鱼吃猫2 小时前
Linux系统:策略模式实现自定义日志功能
linux·c++
zzzsde2 小时前
【C++】C++11(1):右值引用和移动语义
开发语言·c++·算法
学困昇2 小时前
C++11中的包装器
开发语言·数据结构·c++·c++11
雪域迷影3 小时前
C++中编写UT单元测试用例时如何mock非虚函数?
开发语言·c++·测试用例·gmock·cpp-stub开源项目