不能熟练掌握语言的转换

怎么把这个改成c语言惹



#include <iostream>
using namespace std;

template <class datatype>
class seqlist
{
public:
    datatype* data;
    int maxsize;
    int last;
public:
    seqlist()            //构造函数
    {
        maxsize = 100;
        data = new datatype[maxsize];
        last = -1;
    }
    seqlist(int sz)
    {
        if (sz > 0)
            maxsize = sz;
        else
            maxsize = 100;
        data = new datatype[maxsize];
        last = -1;
    }

    bool isempty() { return last == -1 ? true : false; }
    bool isfull() { return last == maxsize - 1; }
    int length() { return last + 1; }

    bool getdata(int i, datatype &x);    //引用

    bool insert_data(int i, datatype x);
    bool delete_data(int i);

    void print_list();

    //int find_data(datatype x);
    //void sort();
    ~seqlist() { delete[] data; }
};

template <class datatype>
bool seqlist <datatype>::insert_data(int i, datatype x)
{
    if (isfull())
    {
        cout << "表已满,不能插入!\n";
        return false;
    }
    if ((i >= 1) && (i <= (last + 2)))
    {
        int j = 0;
        for (j = last; j >= i - 1; j--)
        {
            data[j + 1] = data[j];
        }
        data[j + 1] = x;
        last++;

        return true;
    }
    else
    {
        cout << "插入位置错误,不能插入!\n";
        return false;
    }
}

template <class datatype>
bool seqlist<datatype>::delete_data(int i)
{
    if (isempty())
    {
        cout << "表已空,不能删除!\n";
        return false;
    }
    if ((i >= 1) && (i <= last + 1))
    {
        for (int j = i - 1; j < last; j++)
            data[j] = data[j + 1];
        last--;
        return true;
    }
    else
    {
        cout << "删除位置错误,不能删除!\n";
        return false;
    }
}

template <class datatype>
bool seqlist<datatype>::getdata(int i, datatype &x)
{
    x = data[i - 1];
    return true;
}


template <class datatype>
void seqlist<datatype>::print_list()
{
    datatype x;
    for (int i = 1; i <= last + 1; i++)
    {
        getdata(i, x);
        cout << x << "  ";
    }
    cout << endl;
}

int main()
{
    seqlist <int> linear_list0(-10);
    seqlist <int> linear_list1(101);

    for (int i = 1; i < 7; i++)
    {
        linear_list0.insert_data(i, (i) * 100);
        linear_list1.insert_data(i, (i) * 1000);
    }

    linear_list0.print_list();
    linear_list1.print_list();
    
    linear_list1.insert_data(-1, 1000);
    
    linear_list1.insert_data(9, 1000);
    linear_list1.print_list();
    linear_list1.insert_data(7, 1100);
    linear_list1.insert_data(7, 1200);
    linear_list1.print_list();

    linear_list0.delete_data(2);
    linear_list0.print_list();

    int x;
    linear_list0.getdata(5, x);
    cout << "x = "<<x<<endl;
    linear_list0.getdata(6, x);
    cout << "x = " << x<<endl;
    linear_list0.getdata(7, x);
    cout << "last =" << linear_list0.last<<endl;
    return 0;
}

就是简单的增删改查,要用C的语言重写方法,修改输入输出方式。

不建议简单的换关键字,还是要理解这段代码的含义,用C的方式写。

把 new 改成 malloc
cout改为printf
类改成结构
bool 改成 int

只需要改这些吗?c++小白,看不太懂c++