zoukankan      html  css  js  c++  java
  • C语言实现数据结构中的循环链表

    C语言实现数据结构中的循环链表

    # include <stdio.h>
    # include <stdlib.h>
    typedef struct node  //定义链表中结点的结构
    {
     int code;
     struct node *next;
    }NODE,*LinkList; 

    /*错误信息输出函数*/
    void Error(char *message)
    {
     fprintf(stderr,"Error:%s/n",message);
     exit(1);
    }

    //创建循环链表
    LinkList createList(int n)
    {
     LinkList head; //头结点
     LinkList p;    //当前创建的节点
     LinkList tail; //尾节点
     int i;
     head=(NODE *)malloc(sizeof(NODE));//创建循环链表的头节点
     if(!head)
     {
      Error("memory allocation error!/n");
     }
     head->code=1;
     head->next=head;
     tail=head;
     for(i=2;i<n;i++)
     {
      //创建循环链表的节点
      p=(NODE *)malloc(sizeof(NODE));
      tail->next=p;
      p->code=i;
      p->next=head;
      tail=p;
     }
     return head;
    }

    //创建循环链表方法2(软件设计师教程书上的方法)
    LinkList createList2(int n)
    {
     LinkList head,p;
     int i;
     head=(NODE *)malloc(sizeof(NODE));
     if(!head)
     {
      printf("memory allocation error/n");
      exit(1);
     }
     head->code=1;
     head->next=head;
     for(i=n;i>1;--i)
     {
      p=(NODE *)malloc(sizeof(NODE));
      if(!p)
      {
       printf("memory allocation error!/n");
       exit(1);
      }
      p->code=i;
      p->next=head->next;
      head->next=p;
     }
     return head;
    }

    void output(LinkList head)
    {
     LinkList p;
     p=head;
     do
     {
      printf("%4d",p->code);
      p=p->next;
     }
     while(p!=head);
     printf("/n");
    }

    void main(void)
    {
     LinkList head;
     int n;
     printf("input a number:");
     scanf("%d",&n);
     head=createList(n);
     output(head);
    }

    对比创建循环链表的两中方法,显然方法二更巧妙,技巧性更强. 

  • 相关阅读:
    电力企业信息化建设方案之调度信息报送系统
    HP QC IE11不支持( win7 64位 无法安装)解决方法
    ajax传递list集合
    mysql主从配置
    js动态获取地址栏后的参数
    html页面保存数的两种方式
    微信开发之八 页面获取周围beacon设备
    最好的时光在路上,最美的风景在远方
    【摄影】田子坊
    【前端统计图】echarts实现简单柱状图
  • 原文地址:https://www.cnblogs.com/xiejava/p/15171484.html
Copyright © 2011-2022 走看看