这节课有点抽象,老师基本是画图讲解的,可能总结的很low。
链表
结点:结点里包括两个东西,一个是数据,另一个是指向下一个结点的指针。
让一个指针指向第一个结点,这些结点通过指针“相连”,就构成了链表。
定义一个结点:
typedef struct _node{
int value;
struct _node *next;
}Node;
将它定义成一个结构。
例:一个程序将会读到很多数字,直到-1为止,并且需要将每个数字记下来。
int main(int argc,char const *argv[])
{
int number;
Node * head=NULL;
do{
scanf("%d",&number);
if(number!=-1){
// add to linkde-list 创建一个开头
Node *p=(Node*)malloc(sizeof(Node));
p->value =number;
p->next =NULL;
// find the last 找到最后一个
Node *last =head;
if(last){
while(last->next ){
last=last->next ;
}
//attach 链接
last->next =p;
}else{
head = p;
}
}
}while(number!=-1);
}
|