顺序表及链表结构

I.            表的含义

表是用于储存大量信息的一种储存结构,其结构可类比为现实生活中的火车结构,信息储存在这些车厢(结点)里,再通过连接轴(数据之间的关系)将车厢连接起来。

II.           表结构的构成

如表的含义所示,表一般包括数据结点以及数据连接关系构成。

III.         数据结点

数据结点是用来储存数据的地方,相当于一节火车车厢,里面可以装下很多的数据。

IV.        数据连接关系

建立好数据结点后,如果不用绳索等工具将这些结点按照某种顺序连接起来的话,这些结点就是飘散的,计算机根本就不能全部有序的扫描到这些数据结点,这个时候就需要数据连接关系这个绳索来进行串联。

V   .表的分类

常用的表的储存结构有两种,即顺序表和链表,顺序表顾名思义,是指数据在内存空间上的位置是连续的而且大小固定,而链表是指在内存空间上是不连续的,但它的大小是可以调整的。

A. 顺序表

顺序表存储的最大特点是使用数组,可以做到数据随机访问。

下面是它的结点建立方式

typedefstruct

{

    int data[100];     //数据数量最大为100

    int length ;       //表长

}Sqlist;

B. 链表

链表的分类有很多,比如单链表,双链表,循环链表等。它们都是由单链表转换而来的,在这里着重讲解一下单链表。

单链表特点,大小可申请,无最大上限,访问不随机,需要指针遍历。

单链表结点创建(头结点法)

typedefstruct node

{

    int data;

    struct node *next ;

    int length ;

}LinkList;

        链表创建方法

            头插法

                void CreateList ( LinkList*&L ,int n )

{

                   int i ;

                  LinkList *s ;

                  L = ( LinkList * )malloc( sizeof( LinkList ));

                  L ->next = NULL;

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

                 {

                 s = ( LinkList * )malloc( sizeof ( LinkList));

                 cin >>s->data;

                 s->next = L->next;

                 L->next =s ;

                 }

}

     尾插法

    void CreateList1 ( LinkList *&L , int n)

{

   int i ;

   LinkList *r , *s;

    L= ( LinkList * )malloc( sizeof ( LinkList ));

    r= L ;

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

    {

       s = ( LinkList * )malloc( sizeof ( LinkList ));

       cin>>s->data;

       r->next = s;

       r = s ;

    }

   r->next = NULL;

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值