加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

数据结构部分-线性表

发布时间:2020-12-15 04:48:25 所属栏目:百科 来源:网络整理
导读:首先要分清楚,线性表是逻辑结构,而存储结构有两种,一种是顺序存储,比如 int a[10]{1.2.3.4.5.6.7.8.9.0}; 这样一个一维数组,就是一个顺序存储的线性表。 这是c语言中最简单的数组。 像很多书中这样表示 #include #define MAXSIZE 10 // 顺序表的最大存

首先要分清楚,线性表是逻辑结构,而存储结构有两种,一种是顺序存储,比如

int a[10]{1.2.3.4.5.6.7.8.9.0};

这样一个一维数组,就是一个顺序存储的线性表。


这是c语言中最简单的数组。


像很多书中这样表示

#include

#define MAXSIZE 10 // 顺序表的最大存储容量

typedef struct SqList

{

int data[MAXSIZE]; // 用数组表示顺序表

int length; // 线性表当前长度

};

void main(){

int i=0;

struct SqList list;

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

list.data[i] = i;

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

printf("%dn",list.data[i]);

}

输出结果

1

2

3

4

5

6

7

8

9

Press any key to continue

这也是一个顺序存储的线性表。

另一种是链式存储,就是我们常说的链表比如

#include

#include

typedef struct Node

{

int data;

struct Node *next;

}Node;

int main(){

int i=0;

Node *p;

Node *head = (Node *)malloc(sizeof(Node));//建立头节点,注意头节点不存储数据

head->next = 0;//一开始头节点指向空

for(i = 0;i<10;i++){//采用头插法

p = (Node *)malloc(sizeof(Node));//指针用来指向新申请的空间

p->data = i;

p->next = head->next;//p->next指向头节点的下一节点,

//比如插入第一个节点时,p->next指向0

head->next = p;//头节点指向新插入的节点

}

p = head->next;//因为头节点不存储数据,所以p指向头节点的下一节点

for(i = 0;i<10;i++){

printf("%dn",p->data);

p = p->next;

}

}

输出结果

9

8

7

6

5

4

3

2

1

Press any key to continue

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读