| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3037 人关注过本帖
标题:编写的单链表在“Print_LinkList(LinkList * head) /*输出函数*/”出 ...
只看楼主 加入收藏
海莲
Rank: 1
等 级:新手上路
帖 子:19
专家分:5
注 册:2012-9-27
结帖率:100%
收藏
 问题点数:0 回复次数:3 
编写的单链表在“Print_LinkList(LinkList * head) /*输出函数*/”出现了问题,大家给看看。
#include<stdio.h>
/*typedef struct stu_node
{
    char cno[10];
    char xname[10];
    int iscore[4];
}elemtype;*/
typedef int elemtype;
typedef struct node
{
    elemtype data;
    struct node * next;
}LinkList;

LinkList*head,*p,*m;



LinkList * Create_LinkListR()/*尾插法创建带头节点链表的函数*/
{    elemtype ix;
    LinkList*head,*p,*tail;
    head=(LinkList*)malloc(sizeof(LinkList));
    head->next=NULL;
    tail=head;
    printf("输入数据直道0时结束:\n");
    scanf("%d",&ix);
    while(ix!=0)
    {    p=(LinkList*)malloc(sizeof(LinkList));
        p->data=ix;
        tail->next=p;
        tail=p;
        tail->next=NULL;
        scanf("%d",&ix);
    }
    return(head);
}


void Print_LinkList(LinkList * head)        /*输出函数*/
{
    int i=0;
    printf("输出链表的值为:\n");
    LinkList * p=head->next;
    while(p!=NULL)
    {
        printf("\t%d",p->data);
        i++;
        if(i%5==0)
            printf("\n");
        p=p->next;
    }
    printf("\n");
}
int LinkList_Length(LinkList*head)    /*单链表长度*/
{    LinkList*p=head;
    int j=0;
    while(p->next!=NULL)
    {
        p=p->next;
        j++;
    }
    return j;
}

LinkList * GetData_LinkList(LinkList *head ,int i)       /*按结点查找返回地址*/
{
    LinkList *p;
    int j=0;
    if(i<=0)  
        return NULL;
    p=head;
    while(p->next!=NULL&&j<i)
    {
        p=p->next;
        j++;
    }
    if(i==j)
        return p;
    else
        return NULL;
}
LinkList * Search_LinkList(LinkList * head,elemtype key)/*按值查找*/
{
    LinkList * p;
    p=head->next;
    while(p!=NULL)
        if(p->data!=key)
            p=p->next;
        else
            break;
    return p;
}

void main()
{
    head=Create_LinkListR();
    Print_LinkList(head);
    printf("\n表长为:%d\n",LinkList_Length(head));
    m=GetData_LinkList(head,2);
    printf("\n第2个结点的值为:%d\n",m->data);
    m=Search_LinkList(head,2);
    if(m!=NULL)
        printf("查找成功!\n");

        else
        printf("查找失败!\n");

   
}   

搜索更多相关主题的帖子: include next 
2012-10-01 20:42
海莲
Rank: 1
等 级:新手上路
帖 子:19
专家分:5
注 册:2012-9-27
收藏
得分:0 
给指点指点啊
2012-10-02 20:05
海莲
Rank: 1
等 级:新手上路
帖 子:19
专家分:5
注 册:2012-9-27
收藏
得分:0 
将void Print_LinkList(LinkList * head)        /*输出函数*/中的“LinkList*p=head;”改成p=head就好了,这是什么存在问题?
2012-10-03 00:04
gyll
Rank: 2
等 级:论坛游民
帖 子:56
专家分:21
注 册:2009-4-22
收藏
得分:0 
p=head->next;这样不是把链表的第二个结点给p了吗,那输出里面自然就从第二个结点开始输出了。
你说的是不是这个问题。

学习C
2012-10-03 23:41
快速回复:编写的单链表在“Print_LinkList(LinkList * head) /*输出函数 ...
数据加载中...
 
   



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

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