输出线性表函数为什么只能运行一次,感觉我的代码毫无破绽啊...

#include"随意.cpp"
int main()
{

int a[5] = {1,2,3,4,5};
int e;
LinkNode *L,*L1,*L2;
InitList(L1);
InitList(L2);
CreatListF(L,a,5);
split(L,L1,L2);
DispList(L2);
DispList(L1); 

}

void InitList(LinkNode *&L)
{

L = (LinkNode*)malloc(sizeof(LinkNode));
L->next = NULL;

}

void CreatListF(LinkNode*& L,ElemType a[],int n)
{

LinkNode *p;
L = (LinkNode*)malloc(sizeof(LinkNode));
L->next = NULL;
for(int i = 0;i<n;i++)
{
    p = (LinkNode*)malloc(sizeof(LinkNode));
    p->data = a[i];
    p->next = L->next;
    L->next = p;
}

}

void split(LinkNode *L,LinkNode *&L1,LinkNode *&L2)
{

LinkNode *p = L->next,*pre = L1,*pre1;
while(p!=NULL)
{
    pre->next = p;
    pre = p;
    p = p->next;
    if(p!=NULL)
    {
        pre1 = p->next;
        p->next = L2->next;
        L2->next = p;
        p = pre1;
    }
}
pre->next = NULL;

}

void DispList(LinkNode*L)
{

LinkNode* p=L;
for(int i = 0;p!=NULL;i++)
{
    p = p->next;
    printf("%d",p->data);
}
printf("\n");

}

1个回答

在你的子函数中
InitList(L1);
void InitList(LinkNode *&L)
形参应该是一个指向(LinkNode)的指针,那么子函数的声明应该如下
void InitList(LinkNode *L) //这里的L才是一个指针。
就像你在主函数写的LinkNode *L,*L1,*L2一样。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题

1
将所有的在线性表Lb中但不在La中的元素插入La中
1
R语言 solnp非线性规划函数 为什么总报错:没有"fun"这个函数?(急求!超级感谢!)
4
MATLAB中的非线性拟合
1
matlab 在使用fmincon函数时,怎样是求解的目标函数大于零?
2
链表线性表的增和删,希望给出详细源代码
2
求助大神!线性表调用插入、删除等子函数的C语言主函数(用switch函数)怎么写?
1
数据结构线性表求助,数据结构萨尼书上的
1
Creat函数为什么会错呢?
1
如何修改能够比较string类型的大小
2
一道C++的题,好像是对应的数据类型不对,但是实在是想不到如何修改好这个程序
2
python与selenium使用chrome浏览器 在函数内调用该函数,执行完成后浏览器会自动关闭
0
3异步电机输入输出反馈线性化直接转矩控制仿真matlab仿真
1
数据结构上的一个线性表的冲突的解决,是不是用哈希算法怎么采用C语言的实现方式
0
线性表实现的区域策略算法问题,优化的算法用C语言开发编程的思路
0
线性表的聚合操作的问题的一个实现的算法,采用C语言的办法如何解决
1
求大神看看这个程序怎么弄 线性表的插入算法 老显示有错误
2
matlab 多元线性回归问题
0
线性表的数据去掉重复怎么实现,用数据结构和C语言的程序的技术
0
数据结构(c语言)用线性表实现约瑟夫问题,求大佬帮看看怎么实现下面的代码