zoukankan      html  css  js  c++  java
  • 数据结构-链表C语言实现

    #include <stdio.h>

    #include <stdlib.h>

    typedef struct Node

    {

        int data;//数据域

        struct Node * pNext;//指针域

    }NODE, *PNODE;

    PNODE create_list(void){

        int len;//用来存放有效节点的个数

        int i;//用来临时存放用户输入的节点的值

        int val;//节点的值

        

        PNODE pHead = (PNODE)malloc(sizeof(NODE));

        if (NULL == pHead) {

            printf("分配失败,程序终止!");

            exit(-1);

        }

        printf("请输入您要输入的链表个数");

        scanf("%d",&len);

        PNODE pTail = pHead;

        pTail->pNext = NULL;//pTail永远指向尾节点

        

        for (i=0; i<len; ++i){

            printf("请输入第%d个节点的值:",i+1);

            scanf("%d",&val);

            PNODE pNew = (PNODE)malloc(sizeof(NODE));

            if (NULL == pNew)

            {

                printf("分配失败,程序终止!");

                exit(-1);

            }

            pNew->data = val;

            pTail->pNext = pNew;

            pNew->pNext = NULL;

            pTail = pNew;

        }

        return pHead;

    }

    void traver_list(PNODE pHead){

        PNODE pTmp = pHead;//设置一个临时的节点用于遍历

        while (1) {

            if (pTmp->pNext == NULL) {

                return;

            }

            printf("%d",pTmp->pNext->data);

            pTmp->pNext = pTmp->pNext->pNext;

        }

    }

    int main(int argc, const char * argv[]) {

        PNODE pHead = NULL;//等价于 struct Node *pHead = NULL;

        pHead = create_list();//创建一个非循环单链表并把首地址付给pHead

        traver_list(pHead);//遍历一遍链表

        return 0;

    }

  • 相关阅读:
    潜水员
    混合背包
    多重背包问题
    归并排序——最省时的排序
    HDU 1556 Color the ball
    2016 ACM/ICPC Asia Regional Dalian Online Football Games
    poj 2352 Stars
    poj 2299 Ultra-QuickSort
    关于原码反码补码以及位元算
    2016 湖南省省赛 Problem A: 2016
  • 原文地址:https://www.cnblogs.com/fanxinguu/p/4826837.html
Copyright © 2011-2022 走看看