您的位置:首页 > 其它

数组链表的简单实现

2016-03-08 22:52 357 查看
链表的线性数组实现

#include"iostream"

#include"cstdio"

using namespace std;

int u[100];                //第i条边的起始点

int v[100];                //第i条边的终止点

int w[100];              //第i条边的权值

int n;                       //边数

int first[100];              //存储起点为 i 的第一条边的编号

int next[100];             //存储第 i 条边的下一条边的编号

int x,y,z;

int main()

{
int t;
cin>>n;
for(int i=1;i<=n;i++)                        //万分注意first数组开始必须初始化为-1,此-1代表链表中的NULL;
{
first[i]=-1;
}
for(int i=1;i<=n;i++)
{
cin>>x>>y>>z;
u[i]=x;
v[i]=y;
w[i]=z;
next[i]=first[u[i]];                        //核心语句:含义:第i条边的下一条边的编号是以u[i]为起点的第一条边的编号
first[u[i]]=i;                                 //以u[i]为起点的第一条边的编号是目前最新的i值
}
t=first[1];             //此时只是举例,以1位起点的边序列的举例
while(t!=-1)
{
printf("%d %d %d\n",u[t],v[t],w[t];                      //打印边的信息
t=next[t];                        //往后推边
}
return 0;

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