幺儿啊 2021-10-22 08:57 采纳率: 100%
浏览 27
已结题

不能熟练掌握语言的转换

怎么把这个改成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;
}

  • 写回答

4条回答 默认 最新

  • link_toyou 2021-10-22 09:15
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 10月30日
  • 已采纳回答 10月22日
  • 创建了问题 10月22日

悬赏问题

  • ¥15 stm32代码移植没反应
  • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
  • ¥100 连续两帧图像高速减法
  • ¥15 组策略中的计算机配置策略无法下发
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊