gogo1979 发表于 2013-5-16 09:26:51

小甲鱼老湿留的作业

不懂英文都是用拼音写的,让各位见笑了。请大家指正。
                     /*   1.查看链表
                                                          2.创建链表(尾插法)
                                                          3.链表长度      
                                                          4.中间节点值
                                                          0.退出
                                                          请选择你的操作:

                              功能:编程实现以上内容。
                                                          */

#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>

typedef structs
{
         int data;
       struct s*next;
}node;

node *chuangjian();                   //创建链表
void shuchu(node *phome);             //遍历输出
int changdu(node *phome);             //链表长度
int jiedian(node *phome);             //中间节点

void main()
{
          node *phome;
          char ch;

          printf("1.查看链表\n");
          printf("2.创建链表(尾插法)\n");
          printf("3.链表长度\n");
          printf("4.中间节点值\n");
          printf("0.退出\n\n");
          printf("请选择你的操作:\n\n");

          phome=chuangjian();
          while((ch=getchar()) != '0')
          {
             switch(ch)
                   {
                              case '1': shuchu(phome);break;
                              case '2': printf("\n链表创建成功(尾插法)\n"); shuchu(phome);break;
                                case '3': printf("\n链表的长度是:%d\n\n",changdu(phome));break;
                                case '4': printf("\n链表中间节点的数据是:%d\n\n",jiedian(phome));break;
                               default: printf("输入的数据错误\n");
                   }
             ch=getchar();
          }
}

node *chuangjian()                   //创建链表
{
          node *p,*p1,*p2;
          int i;

          p=p1=p2=NULL;
          for(i=0; i<=10; i++)
          {
                   p1=(node *)malloc(sizeof(node));
                   if(i==0)
                   {
                        p=p2=p1;
                   }
                   else
                   {
                           p2->next =p1;
                           p1->data =i;
                   }
                   p2=p1;

          }
          p1->next =NULL;
          return p;
}

void shuchu(node *phome)             //遍历输出
{
   node *p=phome;

       printf("链表的各数据如下:\n");
         while(p->next)
       {
                p=p->next ;
                  printf("%5d",p->data );
       }
         printf("\n\n");
}

int changdu(node *phome)            //链表长度
{
       node *p=phome;
       int i=0;

       while(p->next)
           {
                    p=p->next ;
                  i++;
           }
       return i;
}

int jiedian(node *phome)            //中间节点
{
      int i;
          node *kuai,*man;
          kuai=man=phome;

          while(kuai->next !=NULL)
          {
             if(kuai->next ->next!=NULL)
                   {
                            kuai=kuai->next ->next;
                             man=man->next ;
                   }
             else
                   {
                         kuai=kuai->next ;
                   }
          }
          
      return man->data ;
}

cqk2980 发表于 2013-5-16 12:50:00

无回帖,不论坛,这才是人道。

bafengao 发表于 2013-5-16 13:24:16

感恩无私的分享与奉献 :)

一站幸福 发表于 2013-5-20 10:02:26

激动人心,无法言表!

bafengao 发表于 2013-5-27 22:40:49

我只是路过打酱油的。

bafengao 发表于 2013-5-28 14:23:43

强烈支持楼主ing……

460896339 发表于 2013-5-28 14:47:03

{:5_99:}想起了当年我大一时的作业

bafengao 发表于 2013-5-28 18:02:04

强烈支持楼主ing……

bafengao 发表于 2013-5-31 13:39:16

无回帖,不论坛,这才是人道。

bafengao 发表于 2013-6-2 21:58:07

向你学习 谢谢lz

bafengao 发表于 2013-6-3 19:19:49

支持楼主 向你学习

驻留的习惯 发表于 2014-3-15 19:53:04

好人必有回报!!!!!
页: [1]
查看完整版本: 小甲鱼老湿留的作业