回 帖 发 新 帖 刷新版面

主题:各位大侠请帮忙

#include<stdio.h>
#include<malloc.h>
typedef struct Node
{
    char a;
    struct Node *next;
}Node,*LinkList;

InitList(LinkList *L)
{
    *L=(LinkList)malloc(sizeof(Node));
    (*L)->next=NULL;
}

void CreateFromTail(LinkList L)
{
    Node *r,*s;
    int flag=1;
    r=L;
    char c;
    while(flag)
    {
        c=getchar();
        if(c!='$')
        {
            s=(Node *)malloc(sizeof(Node));
            s->a=c;
            r->next=s;
            r=s;
        }
        else
        {
            flag=0;
            r->next=NULL;
        }
    }
}

Node *Get(LinkList L,int i)
{
    int j;
    Node *p;
    if(i<=0) return NULL;
    p=L;j=0;
    while((p->next!=NULL)&&(j<i))
    {
        p=p->next;
        j++;
    }
    if(i==j) return p;
    else return NULL;
}

void main()
{
    LinkList *L;
    InitList(L);
    CreateFromTail(*L);
    printf("查找的位置");
    int i,j;
    Node *p;
    p=*L;
    scanf("%d",&i);
    printf("查找的值为%d\n",Get(*L,i));
    while(p->next!=NULL)
    {
        printf("%c ",p->next);
        p=p->next;
    }
    free(*L);
}



这是按序号查找(链表形式),为什么检测出来没有错,但是读程序(程序运行时)不能多,说什么遇到问题要关闭!!??

还有现在为什么做数据结构的作业时,点击检测错误时,他就会卡在那里不动呢~~??
请哪位大侠帮帮忙,谢谢了!!!

回复列表 (共2个回复)

沙发

InitList(LinkList *L)          //我不清楚你是不是确实是想用指针得指针,如果不是,那么LinkList已经是个指针类型,声明一个指针不需要再加*而用LinkList L
{
    *L=(LinkList)malloc(sizeof(Node));
    (*L)->next=NULL;
}

板凳

这道题后来自己解决了!呵呵

我来回复

您尚未登录,请登录后再回复。点此登录或注册