| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 306 人关注过本帖
标题:求大神 帮忙看一下这个链表 错误没有就是有个变量说得初始化 我实在是改不了 ...
只看楼主 加入收藏
zhaobin1994
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-9-10
结帖率:0
收藏
 问题点数:0 回复次数:1 
求大神 帮忙看一下这个链表 错误没有就是有个变量说得初始化 我实在是改不了了
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef int datatype;
typedef struct node
{ datatype data;
struct node *next;
int last;
}linklist;
linklist *creattaillist()
{  linklist *l=(linklist  *)malloc(sizeof(linklist));
  linklist  *s,*r=l;
  int x;
  scanf("%d",&x);
  while(x!=-1)
  {
    s->data=x;
    r->next=s;
    r=s;
    scanf("%d",&x);
  }
  r->next=NULL;
  return l;
  }
 void output(linklist *l)
 {
     linklist *p;
     p=l->next;
     while(p!=NULL)
     {  printf("%d",p->data);}
 }
 int lengthlist (linklist *l)
 { linklist *n=l->next;
 int j=0;
 while(n)
 {n=n->next;j++;}
return j;
 }
void  main ()
{  linklist  *l=creattaillist(  );
 output( l);
     lengthlist (l);
}
D:\Microsoft Visual Studio\MyProjects\lbz\qlb.cpp(17) : warning C4700: local variable 's' used without having been initialized
搜索更多相关主题的帖子: include return 
2013-10-15 21:06
todayzjs
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:30
专家分:121
注 册:2013-7-1
收藏
得分:0 
程序代码:
lz的目的是建立一个链表,向链表中插入数据,然后打印长度,并将其输出。
lz的程序确实有待修改和规范,里面有不少错误。
我不仔细给楼主说了。
这是我写的代码,并写了一点注释,插入是我从头开始插入的,这个lz自己修改。
几个模块的划分是根据数据结构书上的划分的,可能和lz的有出入,但是,还是规范一点好。
如果我是lz的话,估计也会把代码复制,粘贴,运行,OK,然后就不管了,数据结构是计算机最基础的,也是最重要的,链表是数据结构中最基础,也是最重要的。
建议lz,能够弄明白。
代码在linux下测试,并通过。

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

#define OK 1
#define ERROR 0

typedef int Status;
typedef int ElemType;

typedef struct Node
{
  ElemType data;
  struct Node *next;
}Node;
typedef struct Node *LinkList;

/* 初始化顺序线性表 */
Status InitList(LinkList *L)
{
  *L = (LinkList)malloc(sizeof(Node)); /* 产生头结点,并使L指向此头结点 */
  if(!(*L)) /* 存储分配失败 */
    return ERROR;
  (*L)->next = NULL; /* 指针域为空 */

  return OK;
}

/*长度*/
int ListLength(LinkList L)
{
  int i = 0;
  LinkList p = L->next; /* p指向第一个结点 */
  while(p)                      
    {
      i++;
      p = p -> next;
    }
  return i;
}

/*插入元素*/
Status ListInsert(LinkList *L,int i,ElemType e)
{
  int j;
  LinkList p, s;
  p = *L; 
  j = 1;
  while (p && j < i)     /* 寻找第i个结点 */
    {
      p = p->next;
      ++j;
    }
  if (!p || j > i)
    return ERROR;   /* 第i个元素不存在 */
  s = (LinkList)malloc(sizeof(Node));  /*  生成新结点(C语言标准函数) */
  s->data = e;
  s->next = p->next;      /* 将p的后继结点赋值给s的后继  */
  p->next = s;          /* 将s赋值给p的后继 */
  return OK;
}

/* 依次对L的每个数据元素输出 */
Status ListTraverse(LinkList L)
{
    LinkList p = L->next;
    while(p)
    {
        visit(p->data);
        p = p->next;
    }
    printf("\n");
    return OK;
}

Status visit(ElemType c)
{
    printf("%d ",c);
    return OK;
}

int main(void)
{
  LinkList L;
  int i;
  int len = 0;

  i = InitList(&L);
  scanf("%d", &i);
  while (i != -1)
    {
      i = ListInsert(&L, 1, i);
      scanf("%d", &i);
    }
  printf("在L的表头一次输入的数据是:L.data = ");
  ListTraverse(L);

  len = ListLength(L);
  printf("该链表的长度:%d\n", len);

  return 0;
}
2013-10-15 21:52
快速回复:求大神 帮忙看一下这个链表 错误没有就是有个变量说得初始化 我实在是 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024220 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved