链表中的每一个节点只有两个部分。一个存放数据,一个存放下一个节点的地址。
定义两个数组。data[]用来存放数据,每次增加节点,直接在数组data的末尾增加一个值存放新加节点的数据值。len++;scanf("%d",&data[len]);
right[]用来存放下一个节点的地址,从头开始遍历比较新的节点的数据值的大小。当下一个节点的数据值比data[len]大时,将新节点的地址值放到下一个节点的数据值前。
t=1;
while(t != 0)
{
if(data[right[t]] > right[t])
{
right[len] = right[t];
right[t] = len;
break;
}
break;
}
#include <stdio.h>
#include <iostream>
int main()
{
int data[101],right[101];//data存放字节中数据值,right存放字节中地址值
int i, n,t,len;
//上传字节数据值
scanf_s("%d", &n);
//getchar();
for (i = 1; i <= n; i++)
scanf_s("%d", &data[i]);
//上传字节地址值
t = 1;
for (t = 1; t <= n; t++)
{
if (t != n)
right[t] = t + 1;
else
right[t] = 0;
}
//有新的字节要加入进来,首先把此字节的数据值存入到数据数组中
n++;
scanf_s("%d", &data[n]);
//再将此字节的地址值存入到相应的地址数组中
t = 1;
while (t != 0)
{
if (data[right[t]] > data[n])
{
right[n] = right[t];
right[t] = n;
break;
}
t = right[t];
}
//输出所有字节的值
t = 1;
for (i = 1; i <= n; i++)
{
printf("%d\t", data[t]);
t = right[t];
}
system("pause");
return 0;
}