数据结构_线性表实现

                 今天中午的时候,看到了一篇文章,有点惊醒,就是讲的我们这样的快到30岁的人,如果现在我们的目标还不明确,赶紧制定,赶紧明确,我们已没有时间用来浪费,现在还为时不晚,赶紧加油,35岁,是一个坎,就是我们自己愿意,也没有多少公司愿意请这样的人。扳指数数,发现自己也快了,不能这样昏昏的过。要加油。

               上一篇,我们讲到了数据结构中的线性表,众所周知,线性表有两种存储结构,一种是顺序存储结构,一种是链式存储结构。

               我们先来看一下,线性表的定义:

                 typedef struct ListNode{
                            int iElem;
                 } ListNode,*PListNode;


                typedef struct LinkList{
                           ListNode listnode;
                           LinkList *next;
 
                }LinkList,*PLinkList;

                顺序存储,我们可以设置一个

                  PLinkList pLinkList = NULL;

                  pLinkList = (LinkList *)malloc( LINK_LIST_LENGTH *sizeof(LinkList));

                  这里LINK_LIST_LENGTH是指线性表的长度。这里就体现了,用物理存储地址来操作逻辑表示地址,我们这里可以直接使用pLinkList++来初始化其数据。

                 如果采用链式存储,如果我们需要用一个结点来遍历线性表,我们一般可能需要一个头结点。

                 PLinkList pHeadList = NULL;
 
                 PLinkList  pListElem = NULL;

                 PLinkList pFirstList = NULL;  //一个临时结点来保存头结点的位置。
 
                pHeadList = (LinkList *)malloc( sizeof(LinkList)); //我们可以在头结点的数据域中存储一些有用的信息,比如线性表的长度等
 
                pFirstList = pHeadList;

                for(int i = 0; i < 100; i++){
 
                 pListElem = (LinkList *)malloc( sizeof(LinkList));
  
                (pListElem -> listnode).iElem = rand();

                printf("rand %d\n", (pListElem -> listnode).iElem);
 
                 pHeadList -> next =  pListElem;
 
                pHeadList= pHeadList->next;
              }               

                pHeadList = pFirstList;

                

              

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值