当前位置: 首页 > news >正文

绍兴网站建设冯炳良在线免费做网站

绍兴网站建设冯炳良,在线免费做网站,网站建设的主题什么比较好,免备案虚拟主机1元http://blog.csdn.net/abclixu123/article/details/8210109 链表也是线性表的一种#xff0c;与顺序表不同的是#xff0c;它在内存中不是连续存放的。在C语言中#xff0c;链表是通过指针相关实现的。而单链表是链表的其中一种#xff0c;关于单链表就是其节点中有数据域和…http://blog.csdn.net/abclixu123/article/details/8210109 链表也是线性表的一种与顺序表不同的是它在内存中不是连续存放的。在C语言中链表是通过指针相关实现的。而单链表是链表的其中一种关于单链表就是其节点中有数据域和只有一个指向下个节点的指针域。创建单链表的方法有两种分别是头插法和尾插法。 所谓头插法就是按节点的逆序方法逐渐将结点插入到链表的头部。反之尾插法就是按节点的顺序逐渐将节点插入到链表的尾部。相对来说头插法要比尾插法算法简单但是最后产生的链表是逆序的即第一个输入的节点实际是链表的最后一个节点。而为了习惯通常用尾插法来创建链表。下面的代码就是实现了头插法和尾插法。代码在Linux下调试通过。 [cpp] view plaincopy print? #include stdio.h   #include stdlib.h      typedef struct link   {       char data;       struct link *next;   }linklist;      linklist *CreateList_Front();   //头插法创建单链表   linklist *CreateList_End();     //尾插法创建单链表   void ShowLinklist(linklist *h); //输出显示链表      int main(void)   {       int choice;       linklist *head;          //head  (linklist*)malloc(sizeof(linklist));       while(1)       {           printf(单链表的创建\n);           printf(1.使用头插法创建单链表\n);           printf(2.使用尾插法创建单链表\n);           printf(3.链表输出显示\n);           printf(4.退出\n);           printf(做出选择\n);           scanf(%d,choice);           switch(choice)           {           //头插法           case 1:               head  CreateList_Front();               break;           //尾插法           case 2:               head  CreateList_End();               break;           //输出链表           case 3:               ShowLinklist(head);               break;           //退出程序           case 4:               return 0;               break;           default:               break;           }       }       return 1;   }      linklist *CreateList_Front()   {       linklist *head, *p;       char ch;          head  NULL;       printf(依次输入字符数据(‘#’表示输入结束):\n);       ch  getchar();       while(ch ! #)       {           p  (linklist*)malloc(sizeof(linklist));           p-data  ch;           p-next  head;           head  p;           ch  getchar();             //头插法算法简单 核心就两句p-next  head;head  p;       }       return head;   }      linklist *CreateList_End()   {       linklist *head, *p, *e;       char ch;          head  NULL;       e  NULL;       printf(请依次输入字符数据(#表示输入结束):\n);       ch  getchar();       while(ch ! #)       {           p  (linklist*)malloc(sizeof(linklist));           p-data  ch;           if(head  NULL)        //先判断输入的是不是第一个节点           {               head  p;                      }           else           {               e-next  p;     //e始终指向输入的最后一个节点           }           e  p;           ch  getchar();                }       if(e ! NULL)               //如果链表不为空则最后节点的下一个节点为空       {           e-next  NULL;       }       return head;                //尾插法比头插法复杂一些程序中要做两次判断分别是判断第一个节点和最后一个节点的判断。且消耗多一个指针变量e。   }      void ShowLinklist(linklist *h)   {       linklist *p;          p  h;       while(p ! NULL)       {           printf(%c , p-data);           p  p-next;       }       printf(\n);   }   通过上述代码可以看出尾插法确实比头插法复杂点多了两个判断。但是这是可以解决的通过添加一个头节点此节点不存放数据域只是存放指向下个节点的指针域就是了。这样就可以免除掉两次判断。整体也要清晰点了。下面是增加一个头节点后尾插法的实现代码 [cpp] view plaincopy print? #include stdio.h   #include stdlib.h      typedef struct list   {       char data;       struct list *next;   }linklist;      linklist *CreateList_End();     //尾插法创建链表   void ShowLinklist(linklist *h); //输出显示链表      int main(void)   {       linklist *head;          printf(使用尾插法创建链表(改进版)\n);       printf(请依次输入字符数据(‘#’表示输入结束):\n);       head  CreateList_End();        //创建链表       ShowLinklist(head);             //输出链表   }      linklist *CreateList_End()   {       linklist *head, *p, *e;       char ch;          head  (linklist*)malloc(sizeof(linklist));       e  head;           //让e指向头节点       ch  getchar();       while(ch ! #)       {           p  (linklist*)malloc(sizeof(linklist));           p-data  ch;            e-next  p;     //把新节点添加到表尾           e  p;              //把指针指向新节点           ch  getchar();       }          e-next  NULL;          //尾节点的指针域置空       return head;   }      void ShowLinklist(linklist *h)   {       linklist *p;          p  h-next;       while(p ! NULL)       {           printf(%c , p-data);           p  p-next;       }       printf(\n);   }   添加了一个头节点后代码是不是就要清晰点了呢
http://www.pierceye.com/news/653237/

相关文章:

  • 如何做织梦论坛类的网站官网建设目的
  • 安徽网新科技有限公司 网站开发静态网页报告
  • 营销做网站公司怎么做国际货运代理外贸网站
  • 网站建设部署与发布有效期宝石网站建设
  • 网站建设有什么需求分析现在网站都是拿什么软件做的
  • 网站建设需求分析报告撰写阿里云建设网站流程
  • 网站导航栏设计要求seo搜索引擎的优化
  • 杭州做商务网站全屋定制自己设计
  • 汉中定制网站建设公司南昌公司注册
  • 商务网站建设流程步骤小型公司注册资金写多少合适
  • 台州公司网站外包自己做网站运营
  • 聚名网站专业团队p图
  • 网站推广排名收费徐家汇网站建设
  • 做app软件大概多少钱宁波seo优化项目
  • 网站建设土豆视频教程最专业微网站首选公司
  • 合肥做检查军大网站家装公司名称
  • 网站搜索怎么做的苏州网站建设介绍
  • 免费微网站建设地图标注收费属于违法行为吗
  • 网站开发工程师php岗位职责企业网站案例展示
  • 青岛网站营销推广网站工作室设计
  • 网站可以增加关键词吗做网站也是一门技术
  • 长沙 外贸网站建设公司排名传统文化传播公司网站建设
  • 站群seo技巧1 企业网站的一般内容是什么
  • 广东省城乡建设厅投诉网站首页wordpress posts
  • 泰安建设厅网站怎样给公司做一个网站
  • 扶贫网站开发的目的是什么2023年舆情分析报告
  • 河南建设银行处理违章网站网站做支付需要准备什么东西吗
  • 网站设置不能通过链接访问比较好的源码网站
  • 深圳做网站联雅空间业务建设网站
  • 合肥企业网站设计制作莱芜杂谈 莱芜话题