zoukankan      html  css  js  c++  java
  • 数据结构链表创建与输出

    一下是自己学习并编写的链表的创建和输出过程,简单易懂。

    #include <stdio.h>
    #include <stdlib.h>
    #include <malloc.h>
    
    struct ListNode
    {
        int data;
        struct ListNode *next;
    };
    
    typedef struct ListNode list;
    
    list *createList(int b)
    {
        int i,a;
        list *head=NULL,*curNode=NULL,*tailNode=NULL; //此处除head,我们创建两个指针curNode和tailNode
                                                      //curNode总是指向当前创建的节点,tailNode总是指向链表的结尾
        for(i=0;i<b;i++)
        {
            curNode=(list *)malloc(sizeof(struct ListNode)); //申请内存空间并判断是否成功
            if(NULL==curNode)
            {
                printf("Allocate  memry failed......");
                break;
            }
    
            printf("请输入链表中的第%d个数:",i);      //输入链表中的数并把值赋给刚创建的curNode节点
            scanf("%d",&a);
            curNode->data=a;
    
            if(head==NULL)                              //这个循环只执行一次,目的就是为了定位头节点,以便使头节点一直指向第一个节点。
            {
                head=curNode;
                tailNode=curNode;
            }
            else
            {
                tailNode->next=curNode;            //移动节点指针的时候一定要注意移动的先后顺序,比如此处
                tailNode=curNode;
            }
        }
        tailNode->next=NULL;
        return head;
    
    }
    
    int main(void)
    {
        int n;
        list *newNode=NULL;
    
        printf("输入要创建链表的长度:");
        scanf("%d",&n);
    
        newNode=(list *)malloc(sizeof(struct ListNode));
        newNode=createList(n);
    
        while(newNode)
        {
            printf("%d",newNode->data);
            newNode=newNode->next;
        }
        printf("\n");
        free(newNode);          //有malloc就一定有free,不用了一定要归还系统
        return 0;
    }

    一定要记住链表创建的步骤,理解每一步

  • 相关阅读:
    P4357 [CQOI2016]K远点对(KDTree)
    P4475 巧克力王国(KDTree)
    P4148 简单题(KDTree)
    P2479 [SDOI2010]捉迷藏
    P4169 [Violet]天使玩偶/SJY摆棋子
    P4455 [CQOI2018]社交网络
    P4575 [CQOI2013]图的逆变换
    P3755 [CQOI2017]老C的任务
    P5057 [CQOI2006]简单题
    批量修改文件名
  • 原文地址:https://www.cnblogs.com/foundwant/p/2710437.html
Copyright © 2011-2022 走看看