注册 登录
编程论坛 数据结构与算法

修改main()为插入删除

aKARL 发布于 2013-09-25 09:14, 683 次点击
#include<stdlib.h>
#include<stdio.h>

typedef struct Node
{
    int data;
    struct Node *next;
}LNode,*LinkedList;
VisitLinkedList(LinkedList L)
{
    LNode *p;
    p=(LNode*)malloc(sizeof(LNode));
    p=L->next;
    while(p!=NULL)
    {
        printf("%d\n",p->data);
        p=p->next;
    }

}
main()
{
    int X,q,i=1;
    LinkedList L;
    LNode *p,*r,*s,*pre,*m,*n;
    L=(LNode*)malloc(sizeof(LNode));
    L->next=NULL;
    r=L;
    scanf("%d",&X);
    while(X!=0)
    {
        p=(LNode*)malloc(sizeof(LNode));
        p->data=X;
        p->next=r->next;
        r->next=p;
        r=p;
        scanf("%d",&X);
    }
    VisitLinkedList(L);
    printf("请输入要插入的数和位置");
    scanf("%d %d",&X,&q);
    s=(LNode*)malloc(sizeof(LNode));
         s->data=X;
         pre=L;
    while(i!=q)
    {
        pre=pre->next;
        i++;
    }
    s->next=pre->next;
    pre->next=s;
    VisitLinkedList(L);
   
}
4 回复
#2
aKARL2013-09-25 09:16
回复 楼主 aKARL
最好TC,还是老版的那种TC可以用的,爱,学校上安装的TC着实坑爹
#3
zyy_hz2013-09-28 12:20
LNode *p;
p=(LNode*)malloc(sizeof(LNode));
p=L->next;
这里有问题。
#4
zyy_hz2013-09-28 12:24
scanf("%d %d",&X,&q);
    s=(LNode*)malloc(sizeof(LNode));
         s->data=X;
         pre=L;
    while(i!=q)
    {
        pre=pre->next;
        i++;
    }
还里没有判断是不是到链表尾了。如果pre->next为空时还继续取就会有问题。
#5
qwe8851677592013-09-28 13:21
看不懂LZ你要干嘛啊
1