你认为最优美的数据结构是什么?

如题。
关注者
5950
被浏览
329724
并查集:
int find(int x)
{
    if(x!=fa[x])
        fa[x]=find(fa[x]);
    return fa[x];
}
void union(int x,int y)
{
    int a=find(x),b=find(y);
    if(a!=b)
        fa[b]=a;
}
树状数组:
int a[maxn];
int lowbit(int x)
{
    return x&(-x);
}
void add(int x,int y)
{
    while(x<=n)
    {
        a[x]+=y;
        x+=lowbit(x);
    }
}
int sum(int x)
{
    int s=0;
    while(x>0)
    {
        s+=a[x];
        x-=lowbit(x);
    }
    return s;
}
实现简单,代码优雅,效果拔群。