数据结构,求可以运行。C++上 设计一个算法,从顺序表中删除自第i个结点开始的k个结点。

2024-12-02 20:05:35
推荐回答(2个)
回答1:

完美运行!还是我哈
#include
#include
using namespace std;

class List
{
public:
List();
List(const int& count);//重载构造函数
~List();
bool Insert(const int& value);//为方便起见,最末端插入节点
bool Delete(const int& i, const int& k);//删除第i个节点开始的k个节点
bool Replace(const int& x, const int& y);//将x替换成y
void display();
private:
int* data;//数据域
int count;//当前节点个数
};
List::List(const int& count)
{
data = new int[count];
this ->count = 0;
}
List::~List()
{
delete data;
}
bool List::Insert(const int& value)
{
data[count++] = value;
return true;
}
bool List::Delete(const int& i, const int& k)
{
assert(i+k-1 <= count);
for (int m=k+i-1; m
data[m-k] = data[m];
count = count-k;
return true;
}
void List::display()
{
int k = 0;
while(k cout<}
bool List::Replace(const int& x, const int& y)
{
for (int i=0; i if (x == data[i])
data[i] = y;
return true;
}
int main()
{
List list(5);//构造有5个节点的顺序表
list.Insert(1);
list.Insert(2);
list.Insert(3);
list.Insert(3);
list.Insert(5);

//list.Delete(3,1);
list.Replace(3,10);
list.display();
system("pause");
return 0;
}

回答2:

你的连表第一个结点没初始化,所以链表第一个数都是个那个地址内的值下面图中可以看出你的链表C首地址是0x00382798 里面的值是-858993460 所以输出链表中就会一直有这个值 你再看看,把链表初始化一下