标题:数据结构单链表问题
取消只看楼主
cl875821804
Rank: 2
等 级:论坛游民
帖 子:25
专家分:10
注 册:2012-11-24
结帖率:75%
已结贴  问题点数:10 回复次数:4 
数据结构单链表问题
我写的程序编译能通过,但是结果不对,求大神指教
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>



typedef struct LNode
{
    char data;
    struct LNode *next;
}LNode,*Linklist;

Linklist creatlist()
{
    Linklist head,p;
    char ch;
    head=(Linklist)malloc(sizeof(LNode));
    head->next=NULL;
    scanf("%c",&ch);
    while(ch!='\n')
    {
        p=(Linklist)malloc(sizeof(LNode));
        p->data=ch;
        p->next=head->next;
        head->next=p;
        scanf("%c",&ch);
    }
    return head;
}
Linklist findlist(Linklist head,int k)
{
    Linklist p=head;
    int m=0;
    while(p!=NULL&&m<k)
    {
        p=p->next;
        m++;
    }
    return p;
}

int length(Linklist head)
{
    int j=0;
    Linklist p;
    p=head->next;
    while(p!=NULL)
    {
        p=p->next;
        j++;
    }
    return (j);
}
void insertlist(Linklist head,int i,char x)
{
    Linklist p,q;
    if(i<0||i>length(head))
        printf("Error!!");
    else
        {
            p=findlist(head,i-1);
            q=(Linklist)malloc(sizeof(LNode));
            q->data=x;
            q->next=p->next;
            p->next=q;
        }
}
void deletelist(Linklist head,int i)
{
    Linklist p=head->next,q;
    if(i<1||i>length(head))
        printf("Error!!");

        p=findlist(head,i-1);
        q=p->next;
        p->next=q->next;
        free(q);

}
void printlist(Linklist head)
{
    Linklist p=head->next;
    printf("\nhead-->");
    while(p!=NULL)
    {
        printf("%c",p->data);
        p=p->next;
    }
    printf("-->end");
}
void main()
{
    int l;
    Linklist h,p;
    h=creatlist();
    printlist(h);
    l=length(h);
    printf("链表的长度为:%d\n",l);
    insertlist(h,5,'c');
    printlist(h);
    l=length(h);
    printf("链表的长度为:%d\n",l);
    p=findlist(h,5);
    printf("找到的元素为:%d\n",p->data);
    deletelist(h,4);
    printlist(h);
    l=length(h);
    printf("链表的长度为:%d\n",l);
}
搜索更多相关主题的帖子: next include 
2012-11-24 12:05
cl875821804
Rank: 2
等 级:论坛游民
帖 子:25
专家分:10
注 册:2012-11-24
得分:0 
a b d e f g

head-->g f e d b a-->end链表的长度为:11

head-->g f ce d b a-->end链表的长度为:12
找到的元素为:c

head-->g fce d b a-->end链表的长度为:11
Press any key to continue

just do it
2012-11-24 15:06
cl875821804
Rank: 2
等 级:论坛游民
帖 子:25
专家分:10
注 册:2012-11-24
得分:0 
已经改成%c,还是不行

just do it
2012-11-24 15:06
cl875821804
Rank: 2
等 级:论坛游民
帖 子:25
专家分:10
注 册:2012-11-24
得分:0 
额,原来如此。。。。。。。。。。。。拜谢。。。。

just do it
2012-11-24 18:16
cl875821804
Rank: 2
等 级:论坛游民
帖 子:25
专家分:10
注 册:2012-11-24
得分:0 
程序把空格当成字符了,大家以后注意啊!!!!!!!!!!

just do it
2012-11-24 18:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-388259-1-1.html




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

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