• 一个简单的动态链表。


    一个简单的动态链表。

     1 #include <stdio.h>
     2 #include <malloc.h>                                        /*包含动态内存分配函数的头文件*/
     3 #define N 10                                               /*N为人数*/ 
     4                         
     5 typedef struct node    {
     6     char name[20];
     7     struct node *link;
     8 }stud;
     9 
    10 stud * creat(n){                                           /*建立单链表的函数,形参n为人数*/
    11     stud *p,*h,*s;                                           /* *h保存表头结点的指针,*p指向当前结点的前一个结点,*s指向当前结点*/
    12     int i;                                                   /*计数器*/
    13     if((h =(stud *)malloc(sizeof(stud))) == NULL){           /*分配空间并检测*/
    14         printf("不能分配内存空间");
    15         return NULL;
    16     }
    17     h->name[0]='\0';                                       /*把表头结点的数据域置空*/
    18     h->link=NULL;                                           /*把表头结点的链域置空*/
    19     p=h;                                                   /*p指向表头结点*/
    20     for(i=0;i<n;i++){
    21         if((s =(stud *)malloc(sizeof(stud))) == NULL){     
    22             printf("不能分配内存空间!");
    23             return NULL;
    24         }
    25         p->link=s;                                            /*把s的地址赋给p所指向的结点的链域,这样就把p和s所指向的结点连接起来了*/
    26         printf("请输入第%d个人的姓名",i+1);
    27         scanf("%s",s->name);                                /*在f当前结点s的数据域中存储姓名*/
    28         s->link=NULL;
    29         p=s;
    30     }
    31     return h;
    32 }
    33 void main(){
    34     int number;
    35     stud *head;                                                /*head是保存单链表的表头结点地址的指针*/
    36     number =N;                                                /*把所新建的单链表表头地址赋给head*/
    37     head =creat(number);
    38     do
    39     {
    40         head = head->link;
    41         printf("名字是:%s \n",head->name);
    42     }
    43     while(head->link !=NULL);
    44 }
  • 相关阅读:
    最大流基础
    转一篇写期望的日志
    poj3267The Cow Lexicon(dp)
    poj3026Borg Maze(bfs+MST)
    poj2226Muddy Fields(二分图的最小点覆盖)
    poj1035Spell checker(字符串模拟)
    poj1422Air Raid(最小路径覆盖)
    poj3020Antenna Placement(最小路径覆盖)
    [JSOI2009]火星藏宝图
    [SHOI2007]书柜的尺寸
  • 原文地址:https://www.cnblogs.com/kakaliush/p/1697094.html
Copyright © 2020-2023  润新知