尝试创建排序的动态列表(数据结构)

Trying to make a sorted dynamic list ( data structure)

本文关键字:列表 数据结构 动态 创建 排序      更新时间:2023-10-16

大家晚上好。我现在正在制作的程序与排序和数据结构有关。我已经在我的列表中输入了一些值。我想对它们进行排序,为此,我将每个节点上存在的值提取到一个数组中,然后对数组进行排序。我对将排序的值放入列表感到困惑。

这是包含结构,类和函数定义的代码(没有提到类的完整定义)

#define max 30
struct data
{
int val,index;
data* next;
};
class exp
{
data* beg;int count;
int arr[max];
public:
exp()
{beg = NULL;
count = 0;}
};

我之所以感到困惑,是因为:

void exp :: sort_ins()
{
sort();
data* temp = beg;
int i = 0;
do
{
temp -> val = arr[i];
temp = temp -> next;
i++;
}while(i < count && temp != NULL);
}

我的问题是,在更改与 temp 相关的值(基本上是从头到尾)之后,实际上会更改与"beg"关联的节点的值吗?我的意思是说,在执行此代码后,如果我尝试获取附加到"beg"的节点的值,这些值是否会更新?还是我需要添加其他内容?如果可能的话,我想要一个相关理论的链接,用于学习目的(纯粹是可选的)。

谢谢你的时间..

(我还没有给出完整的代码,如果需要,我可以分享。

是的,改变temp指向的内容也是beg所指向的,因为它们都指向相同的数据。

如果你复制一个指针,你最终会得到两个指向同一事物的指针。任何一个指针都可以用来改变那个东西。这就是指针的工作方式。