关闭

【郝斌数据结构自学笔记】24_链表创建和链表遍历算法的演示

标签: 数据结构c语言链表遍历算法
802人阅读 评论(0) 收藏 举报

24_链表创建和链表遍历算法的演示

#include<stdio.h>

#include<malloc.h>

#include<stdlib.h>

 

typedefstruct Node

{

         int data;//数据域

         struct Node * pNext;//指针域

}NODE,*PNODE;//NODE等价于structNode,PNODE等价于struct Node *

//函数声明

PNODEcreate_list(void);

voidtraverse_list(PNODE pHead);

 

 

int main(void)

{

         PNODE pHead=NULL;//等价于structNode *pHead=NULL;

         pHead=create_list();//creat_list()功能:创建一个非循环单链表,并将该链表的头节点的地址付给pHead

         traverse_list(pHead);

 

         return 0;

}

 

PNODE create_list(void)

{

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

         int i;

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

 

         //分配了一个不存放有效数据的头节点

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

         if(NULL==pHead)

         {

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

                   exit(-1);

         }

         PNODE pTail=pHead;

         pTail->pNext=NULL;

         printf("请输入您需要生成的链表节点的个数:len=");

         scanf("%d",&len);

 

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

         {

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

                   scanf("%d",&val);

 

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

                   if(NULL==pNew)

                   {

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

                            exit(-1);

                   }

                   pNew->data=val;//挂

                   pTail->pNext=pNew;

                   pNew->pNext=NULL;

                   pTail=pNew;

        

         }

         return pHead;

}

 

void traverse_list(PNODE pHead)

{

         PNODE p=pHead->pNext;

         while(NULL!=p)

         {

                   printf("%d",p->data);     

                   p=p->pNext;//不连续,不能用p++

         }

         printf("\n");

         return;

}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:11119次
    • 积分:335
    • 等级:
    • 排名:千里之外
    • 原创:23篇
    • 转载:3篇
    • 译文:0篇
    • 评论:1条