链表

链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构。它可以根据需要开辟内存单元。链表有一个“头指针”变量,以head表示,它存放一个地址。该地址指向一个元素。链表中每一个元素称为“结点”,每个结点都应包括两个部分:一为用户需要用的实际数据,二为下一个结点的地址。因此,head指向第一个元素:第一个元素又指向第二个元素;……,直到最后一个元素,该元素不再指向其它元素,它称为“表尾”,它的地址部分放一个“NULL”(表示“空地址”),链表到此结束。

静态链表:不是临时开辟的,也不能用完后释放

#include<stdio.h>
struct Student///声明结构体类型struct Student
{
    int num;
    float score;
    struct Student *next;
};
int main()
{
    struct Student a,b,c,*head,*p;///定义3个结构体变量a,b,c作为链表的结点
    a.num=10101;a.score=89.5;///对结点a的num和score成员赋值
    b.num=10103;b.score=90;///对结点b的num和score成员赋值
    c.num=10107;c.score=85;///对结点c的num和score成员赋值
    head=&a;///将结点a的起始地址赋值给头指针head
    a.next=&b;///将结点b的起始地址赋值给a结点的next成员
    b.next=&c;///将结点c的起始地址赋值给a结点的next成员
    c.next=NULL;///c结点的next成员不存放其他结点地址
    p=head;///使p也指向a结点
    do
    {
        printf("%ld %5.1f\n",p->num,p->score);///输出p指向的结点的数据
        p=p->next;///使p指向下一节点
    }while(p!=NULL);///输出完c节点后p的值为NULL,循环终止
    return 0;

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值