c语言 函数调用链表,建立一个链表,同时声明一个函数,可是在main()函数中调用生命的函数后无法执行下一步操作...

已结贴√

问题点数:9 回复次数:5

ca56232b3bbedf9a539d07f37fffb99a.gif

3144d8b7615c79d9f638db40d5689d26.gif

a218af6549b45ee526caf607ebff1358.gif

0f8df0e29816ae721419de940fb833d1.gif

建立一个链表,同时声明一个函数,可是在main()函数中调用生命的函数后无法执行下一步操作

#include

#include

#define LEN sizeof(struct LNode)

int num;

int j;

struct LNode

{

int data;

struct LNode *next;

};

int n;

struct LNode *creat_lnode(int n)

{

struct LNode *L;

struct LNode *p;

struct LNode *r;

int j;

L=malloc(LEN);  //L是个头节点

L->next=NULL;

r=L;

printf("请输入链表元素\n");

for(j=0;j

{

p=malloc(LEN);

scanf("%d",&(p->data));

p->next=NULL;

r->next=p;

r=p;

}

L=L->next;

return (L);

}

int flag=0;

void find_lnode(struct LNode *L,int i)

{

int m;

for(m=0;mnext)

{

if(L->data==i)

{

printf("%d的位置是",i);

printf("%d\n",m);

flag=5;

}

}

if(flag==0)

printf("没有这个元素");

}

struct LNode *pre_insert_lnode(struct LNode *L,int i,int DATA)

{

struct LNode *pt_1;

struct LNode *pt_2;

struct LNode *pt_3;

int m;

pt_2=L;

pt_3=pt_2;

for(m=0;m

{

L=L->next;

}

pt_1=malloc(LEN);

pt_1->data=DATA;

pt_1->next=L->next;

L->next=pt_1;

for(m=0;m<100;m++,pt_2=pt_2->next)

{

printf("%d ",pt_2->data);

}

return pt_3;

}

void delete_lnode(struct LNode *P,int i)

{

struct LNode *pt_1;

struct LNode *pt_2;

struct LNode *first;

first=P;

int m;

for(m=0;m

{

P=P->next;

}

pt_1=P->next;

pt_2=pt_1->next;

P->next=pt_2;

free(pt_1);

for(m=0;m<100;m++,first++)

{

printf("%d\n",first->data);

}

}

int main()

{

struct LNode *L;

struct LNode *M;

struct LNode *h;

int i;

int insert_num;

int insert_data;

int del_area;

printf("请输入链表元素个数\n");

scanf("%d",&num);

L=creat_lnode(num);

M=L;

for(i=0;inext)

{

printf("%d\n",L->data);

}

printf("%d\n",M);

printf("请输入要查找的数据\n");

scanf("%d",&j);

find_lnode(M,j);

printf("请输入要插入的位置\n");

scanf("%d",&insert_num);

printf("请输入要插入的数据\n");

scanf("%d",&insert_data);

h=pre_insert_lnode(M,insert_num,insert_data);

/***********************************************************************/

就是在这,调用了pre_insert_lnode()函数向链表中插入一个数据后,就无法执行下一步的操作

/***********************************************************************/

printf("请输入要删除元素的位置\n");

scanf("%d",&del_area);

delete_lnode(M,del_area);

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值