单向链表的创建

链表包括数据域和指针域两个部分。其中,数据域存储节点的数据,指针域则指向下一个节点。

  • 创建链表先创建链表的结构体。如下代码:
struct node {
    int data;            //数据域
    struct node *next;  //指针域
}
  • 主函数创建头结点:
int main(){
    //创建头结点并且为其动态申请空间
    struct node *head = (struct node *)malloc(sizeof(struct node *));
    //判断空间是否开辟成功
    if(head==NULL){
        printf("空间开辟失败");
        return 0;
    }
    //头结点,指针域为空
    head->next=NULL;
}
  • 链表插入结点有头插法和尾插法。这里呢,我们用头插法创建5个结点:

注:头插法为逆序输出

int creat(struct node *head){
    //定义头指针指向头结点
    struct node *p=head;
    
    //循环创建5个结点
    //创建一个新的结点
    struct node *q;
    int i;
    for(i=0;i<5;i++){
        //为新结点动态创建空间
        q=(struct node *)malloc(sizeof(struct node *));
        //键盘录入
        printf("请输入数据");
        scanf("%d",&q->data);

        //头插法
        q->next=p->next;
        p->next=q;
    }
}
  • 遍历输出:
int shuchu(struct node *){
    //定义头指针指向首元结点
    struct node *p=head->next;
    
    while(p!=NULL){
        printf("%d ",p->data);  //输出元素
        p=p->next;              //指针后移
    }
    printf("\n");
}
以上就是单向链表的创建。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值