强烈希望人品大爆发,看着我一直那么正直的份上,考试系统不要发给我链表题啊啊啊。
但还是要了解一些基础的啊,以备万一。
这里只介绍单项链表。
1.链表的概念: 由若干个同一结构类型的"结点"依次串接而成的。
2.链表遍历一般用指针head表示,用来存放链表首结点的地址。链表中每个结点由数据部分和下一个结点的地址部分组成;、每个结点指向下一个结点,链表中的最后一个结点称为表尾。
3.链表的各个结点在内存中可以是不连续存放的。
//通常使用结构的嵌套来定义单向链表结点的数据类型。
struct stud_node{
int num; //1
int name[20]; //2
int score; //3
struct stud_node*next;//4
}
//每一结点均有四个分量组成,第四个分量next是一个结构指针
//动态存储分配,p指向被分配内存空间的起始地址
struct stud_node*p;
p=(struct stude_node*)malloc(sizeof(struct stud_node));
//链表的遍历
ptr=ptr>-next;
//由于各节点在内存中不是连续存放的,不可以使用ptr++来寻找下一个结点。
for(ptr=head;ptr!=NULL;ptr=ptr->next)
//插入结点
ptr2=ptr1>-next;
//删除结点ptr2
ptr1->next=ptr2->next;
free(ptr2);
int fun (NODE *h)
{ int sum=0;
NODE *p;
p=h->next;
/*************found**************/
while(p!=NULL)//判断当前结点是否存在
{ if(p->data%2==0)
sum+=p->data;
/*************found**************/
p=p->next;//遍历操作,指向下一个结点
}
return sum;
}