图的存储:回顾C++最基本的两种储存/访问方式:数组和链表

数组

//数组
//声明数组:type arrayName [ arraySize ];
int list1[5];
//为数组某个元素赋值
int list1[0]=4;
//花括号的方法声明数组并赋值,每个元素用逗号隔开
char list2[3]={'a','b','c'};
//for循环赋值
int list3[10];
for(int i=0;i<10;++i){
    list3[i]=i;
}

  双向链表

在这里插入图片描述 

//Linked list 链表
//doubly linked list 双向链表的定义
//双向链表的储存结构
struct Lnode {
	int mark;                         //结点的数据域
	Lnode* next;                      //结点的指针域,next储存下一个结点的指针
	Lnode* pre;                       //pre储存上一个结点的指针

	Lnode() :mark(0), next(nullptr),pre(nullptr) {} //这两行是构造函数。这行是初始化的情况。
	Lnode(int x) :mark(x), next(nullptr), pre(nullptr) {} //这行指如果有数据传进结点,就按x给结点赋值。
};


int main(){
    //创建一个结点
    Lnode* L=new Lnode(); //new Lnode():开辟一个结构体,调用构造函数。
                          //Lnode* L:定义一个指针。 L是指向new Lnode()的指针, L是指针,
    
    //循环创建结点,构成一个双向链表
    Lnode* head=new Lnode();
    Lnode* cur=head;
    for(int i=0;i<10;++i){
        Lnode* node=new Lnode(i);
        cur->next=node;
        node->pre=cur;
        cur=node;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值