1.链表和数组的区别
2.链表的实现
链表中每个节点的具体实现,需要使用 C 语言中的结构体,具体实现代码为:
typedef struct Link{
char elem; //代表数据域
struct Link * next; //代表指针域,指向直接后继元素
}link; //link为节点名,每个节点都是一个 link 结构体
由于指针域中的指针要指向的也是一个节点,因此要声明为 Link 类型(这里要写成 struct Link* 的形式)。
3.链表静态添加和动态遍历
编译失败时在后面加上 -std=c99
#include <stdio.h>
struct Test{
int data;
struct Test *next;
};
int main(){
int array[]={1,2,3};
for (int i=0;i<sizeof(array)/sizeof(array[0]);i++){
printf("%d",array[i]);
};
puts("");
struct Test t1={1,NULL};
struct Test t2={2,NULL};
struct Test t3={3,NULL};
t1.next=&t2;
t2.next=&t3;
printf("%d%d%d\n",t1.data,t1.next->data,t1.next->next->data);
}
1.注意NULL是大写
2.变量用点函数,t1.data
3.指针用箭头函数,t1.next->data