陌湘萘 2015-12-21 10:43 采纳率: 40%
浏览 3081
已采纳

C++链表(我写的程序自己也看不懂)

建立一个10结点的单向链表,每个结点包括学号,姓名,性别,年龄,对其进行排序,采用插入排序法,按学号从小到大排序。
(我链表没听懂,基础概念讲讲也好~)

  • 写回答

10条回答 默认 最新

  • 普通网友 2015-12-22 02:12
    关注

    以下是创建链表的代码,c语言结构体实现:(不带头结点,一级指针实现,当然可以多级指针实现,也可以带头结点,也可以是循环链表,也可以是
    双向循环链表)
    #include
    #include
    //链表结构体定义
    typedef struct _NODE
    {
    int data;
    struct _NODE *next;
    }Node, *List;

    //创建链表
    List CreateList()
    {
    Node head = NULL, *p1 = NULL, *p2 = NULL;
    p1 = p2 = (Node
    )malloc(sizeof(Node));

                while(1 == scanf("%d", &p1->data))
                {
                                if(NULL == head)
                                {
                                            p1->next = NULL;
                                            head  = p1;
                                }
                                else
                                {
                                            p2->next = p1;
                                            p2 = p1;
                                }
                                p1 = (Node*)malloc(sizeof(Node));
                }
                free(p1);
                p1 = NULL;
                p2->next = NULL;
                /*注意这里 若果是 p2->next = p1; 那么就成为了一个单向循环链表*/
                return head;
    

    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(9条)

报告相同问题?