动态链表(头插法和尾插法)

#include <stdio.h>
#include <stdlib.h>

typedef struct node
{
    int data;
    struct node * next;
}Node;

//尾插法

#if 0
Node * createList()
{
    Node * head = (Node *)malloc(sizeof(Node));
    if (NULL == head)
        exit(-1);
    head->next = NULL;

    Node *t = head,*cur;
    int nodeData;
    scanf("%d",&nodeData);
    while(nodeData)
    {
        cur = (Node *)malloc(sizeof(Node));
        if(NULL == head)
            exit(-1);
        cur ->data = nodeData;  
        t -> next = cur;
        t = cur;
        scanf("%d",&nodeData);
    }

    t->next = NULL;
    return head;
}
#endif

//头插法

Node * createList()
{
    Node * head = (Node *)malloc(sizeof(Node));
    if (NULL == head)
        exit(-1);
    head->next = NULL;
    Node *cur;

    int nodeData;
    scanf("%d",&nodeData);
    while(nodeData)
    {
        cur=(Node *)malloc(sizeof(Node));
        if(NULL==head)
            exit(-1);
        cur -> data = nodeData;

        cur -> next = head -> next;
        head -> next = cur;

        scanf("%d",&nodeData);
    }
    return head;
}


void traverseList(Node *head)
{
    head = head -> next;
    while(head)
    {
        printf("%d\n",head -> data);
        head = head -> next;
    }
}

int main(int argc, char *argv[])
{
    Node *head = createList();
    traverseList(head);
    return 0;
}
此条目发表在C分类目录。将固定链接加入收藏夹。

发表评论

邮箱地址不会被公开。 必填项已用*标注

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax

Protected with IP Blacklist CloudIP Blacklist Cloud