您的位置:首页 > 其它

模拟链表

2016-04-18 22:14 357 查看
#include<stdio.h>

#include <stdlib.h>

int main()

{

int data[101], right[101];//right[i] = n代表data[i]右边的元素是data
eg right[3] = 10 表示data[3]右边的元素是data[10]

int i, n, t, len;

scanf("%d",&n);

for(i = 1; i <= n; i++)

scanf("%d",&data[i]);

len = n;

for(i = 1; i<=n; i++)

{

if(i!=n) right[i] = i+1;

else right[i] = 0;

}

len++;

scanf("%d",&data[len]);

t = 1;

while(t!=0)

{

if(data[right[t]] >data[len])//从data[2]开始 如果data[right[t]] > data[len] 则在data[t] 跟data[right[i]]中插入data[len]

{

right[len] = right[t];//data[len]的右边是data[right[t]]

right[t] = len;//data[t]的右边是data[len]'

break;

}

t = right[t];

}

t = 1;

while(t!=0)

{

printf("%d ",data[t]);

t = right[t];

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: