数据结构部分-线性表
首先要分清楚,线性表是逻辑结构,而存储结构有两种,一种是顺序存储,比如 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |