| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 557 人关注过本帖
标题:链表的创建问题
只看楼主 加入收藏
long361800
Rank: 2
等 级:论坛游民
帖 子:33
专家分:37
注 册:2010-8-23
结帖率:90%
收藏
已结贴  问题点数:2 回复次数:4 
链表的创建问题
#include   <stdio.h>
#include   <stdlib.h>
#include   <malloc.h>
void CreateList_L(LinkList  *&L,int n)        /*尾插法建立单链表*/
{
    LinkList *s,*r;int i;
    L=(LinkList *)malloc(sizeof(LinkList));      /*创建头结点*/
    L->next=NULL;
    r=L;                    /*r始终指向终端结点,开始时指向头结点*/
    for (i=0;i<n;i++)
    {   
        s=(LinkList *)malloc(sizeof(LinkList));/*创建新结点*/
        scanf("%3c",&s->data);
        r->next=s;            /*将*s插入*r之后*/
        r=s;
    }
    r->next=NULL;            /*终端结点next域置为NULL*/
}  //CreateList_L


void DispList_L(LinkList *L)
{
    LinkList *p=L->next;
    while (p!=NULL)
    {    printf("%c ",p->data);
        p=p->next;
    }
    printf("\n");
}  //DispList_L




#include  "linklist.h"
void main()
{
        LinkList *L;
        CreateList_L(L,5);
        DispList_L(L);
}

怎么我输入数据后没有结果啊??  刚学习,有很多地方不懂,求完整程序一份。。。。。
搜索更多相关主题的帖子: 师范大学 include 时间段 武汉 宁波 
2011-07-26 17:54
世界模型
Rank: 4
等 级:业余侠客
威 望:1
帖 子:240
专家分:226
注 册:2010-9-12
收藏
得分:1 
程序代码:
/*
*单链表
*/
#include<stdio.h>
#include<stdlib.h>

#define MAX 100

typedef struct LNode
{
    int data;
    struct LNode *next;
}LNode,*LinkList;

void Create_List(LinkList L,int N)
{
    LinkList p;

    for(int i=N;i>0;i--)
    {
        p=(LinkList)malloc(sizeof(LNode));
        printf("please input the value of data:\n");
        scanf("%d",&p->data);
        p->next=L->next;
        L->next=p;
    }
}

int GetElem_L(LinkList L,int i,int *e)
{
    LinkList p;
    int j;

    p=L->next;        //p指向第一个结点
    j=1;            //计数器

    while(p!=NULL)
    {
        if(j<i)
        {
            p=p->next;
            ++j;
        }
        else
        {
            break;
        }
    }
    if(!p)
    {
        return -1;
    }
    e=&p->data;
    printf("%d\n", *e);
    return 1;
}

int main()
{
    LinkList q;
    int n,i;
    int *e=NULL;

    q=(LinkList)malloc(sizeof(LNode));
    q->next=NULL;

    printf("please input the number of data:\n");
    scanf("%d",&n);

    Create_List(q,n);
    printf("please input the value number which need search:\n");
    scanf("%d",&i);
    GetElem_L(q,i,e);
    return 0;
}
2011-07-26 21:47
long361800
Rank: 2
等 级:论坛游民
帖 子:33
专家分:37
注 册:2010-8-23
收藏
得分:0 
好奇怪啊!!

对于下面的程序:

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

typedef  int  ElemType;

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

void CreateList_L(LinkList  *&L,int n)      
{
    LinkList *s,*r;int i;
    L=(LinkList *)malloc(sizeof(LinkList));      /*创建头结点*/
    L->next=NULL;
    r=L;                    
    for (i=0;i<n;i++)
    {   
        s=(LinkList *)malloc(sizeof(LinkList));/*创建新结点*/
        printf("please input the %dth value of data:\n",i+1);
        scanf("%d",&s->data);
        r->next=s;           
        r=s;
    }
    r->next=NULL;            
}  //CreateList_L


void DispList_L(LinkList *L)
{
    LinkList *p=L->next;
    while (p!=NULL)
    {    printf("%d ",p->data);
        p=p->next;
    }
    printf("\n");
}  //DispList_L

void main()
{
        LinkList *L;
        CreateList_L(L,5);
        DispList_L(L);
        getchar();
        getchar();
}

会正确的输出::

图片附件: 游客没有浏览图片的权限,请 登录注册


但是当我把
typedef  int  ElemType;      改为      typedef  char  ElemType;
scanf("%d",&s->data);        改为       scanf("%c",&s->data);  
 printf("%d ",p->data);      改为       printf("%c ",p->data);  
结果却输出::
图片附件: 游客没有浏览图片的权限,请 登录注册
   

这是为什么呢??     求解释。。。。。。。。。。。。。
2011-07-27 10:16
诸葛修勤
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:549
专家分:1955
注 册:2010-10-28
收藏
得分:1 
关键 在于 scanf();
如果对于是字符 后面要清空缓冲区 即你的回车要除掉

可以在接受字符的后面加上一句getchar(); 自己试试
2011-07-27 12:22
long361800
Rank: 2
等 级:论坛游民
帖 子:33
专家分:37
注 册:2010-8-23
收藏
得分:0 
回复 4楼 诸葛修勤
蜘蛛侠好功底啊!!   兄台可以再讲的明白一点吗??  scanf()函数为什么会是这样呢??加个getchar()是什么意思呢??为什么这样就可以了么??  小弟不才,求解释啊。。。。
2011-07-27 15:34
快速回复:链表的创建问题
数据加载中...
 
   



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

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