模拟链表
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];
}
}
#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];
}
}
相关文章推荐
- 替换位置
- Coinbase在美国推出借记卡兑换比特…
- 拥有1900万客户的日本娱乐巨头DMM…
- 为什么中国防火墙会给比特币矿工造…
- 香港财长提及“区块链”背后的重大意…
- 从风险管理角度看比特币扩容决策
- 俄罗斯比特币用户世界第五 央…
- Bitwage与保险公司合作 提供…
- mysql常用指令
- G20峰会:FSB将区块链和互联网金融…
- BitFury集团宣布对BitPesa公司进行…
- 韩国证券交易所开发区块链交易体系
- IBM高管当选为区块链项目委员会主…
- 韩国证券交易所开发区块链交易体系
- IBM高管当选为区块链项目委员会主…
- 红杉资本:区块链技术或对万事达的…
- windows软件:Adobe Acrobat Ⅺ Pro激活教程
- 比特币不能颠覆世界,但它的区块链…
- IBM做了个"超级账簿":打算普及…
- 日本试想将比特币规范成货币