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

思维导图

相关推荐
炘爚4 分钟前
Phase 4:业务线程池 — IO/计算解耦
linux·c++
张小姐的猫6 分钟前
【Linux】多线程 —— 线程池 | 单例模式 | 常见锁
linux·运维·服务器·c++·单例模式·设计模式·策略模式
郝学胜-神的一滴8 分钟前
力扣 662 :二叉树最大宽度
java·数据结构·c++·python·算法·leetcode·职场和发展
加油码16 分钟前
Linux IO 多路转接详解:从 select、poll 到 epoll
linux·c++
珊瑚里的鱼19 分钟前
C++14 和 C++17 的核心新特性
开发语言·c++
小欣加油22 分钟前
leetcode169 多数元素
数据结构·c++·算法·leetcode·职场和发展
zxw61044 分钟前
UFOMap代码Debug
c++
fpcc1 小时前
工具使用—CMake文件中的常见变量
c++
liu-yonggang1 小时前
MISRA C++:2008 — Guidelines for the use of the C++ language in critical systems
c++
凡人叶枫1 小时前
Effective C++ 条款05:了解 C++ 默默编写并调用哪些函数
java·linux·开发语言·c++·effective c++·编程范式