今天中午的时候,看到了一篇文章,有点惊醒,就是讲的我们这样的快到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;