链表的PrintList_L函数

zhouyubin123 2009-09-05 05:52:52
#include<iostream>
using namespace std;
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
#define NULL 0
#define LEN sizeof(struct LNode)
typedef int Status;
typedef struct LNode
{
int data;
struct LNode *next;
}LNode,*LinkList;
int main()
{
void PrintList_L(LinkList L,int n) ;
void CreateList_L(LinkList L,int n);
struct LNode *p;
printf("\n\n1.构建一个线性表 2.插入一个元素3.删除一个元素4.结束程序\n");
int demand;
do
{
cout<<"选择一个功能[1,2,3,4]"<<endl;
cin>>demand;
switch(demand)
{
case 1:
{
int n;
printf("输入线性表的个数\n");
cin>>n;
CreateList_L(p,n);
PrintList_L(p,n);
}break;
case 2:
{

}break;
case 3:
{

}break;
case 4:exit(0);
}
}while(demand<=4);
system("pause");
return 0;
}
void CreateList_L(LinkList L,int n)
{
int i;
LinkList p,q;
L=(LinkList)malloc(LEN); /*生成头结点*/
p=(LinkList)malloc(LEN); /*生成第一个结点,并将头节点的next域指向第一个结点*/
L->next=p;
for(i=1;i<n;i++)
{
q=(LinkList)malloc(LEN);
p->next=q;
cin>>(*q).data;
p=q;
}
}
void PrintList_L(LinkList L,int n)
{
LinkList plist;
L->next=plist;
int i=1;
while(plist!=NULL)
{
cout<<"mem["<<i<<"]"<<"="<<(*plist).data<<endl;
plist->next=plist;
i++;
}
}



看看为啥不能输出?
...全文
1563 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
whg01 2009-09-05
  • 打赏
  • 举报
回复
逻辑错了。
在PrintList_L函数中,
L->next=plist; 应该是plist=plist->next;
plist->next=plist; 应该是plist=plist->next;

mstlq 2009-09-05
  • 打赏
  • 举报
回复
问题不少……
尤其是void PrintList_L(LinkList L,int n);这样的函数形式……

#include <iostream>
using namespace std;
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
#define NULL 0
#define LEN sizeof(struct LNode)
typedef int Status;
typedef struct LNode
{
int data;
struct LNode *next;
}LNode,*LinkList;
int main()
{
void PrintList_L(LinkList &L,int n) ;//mark
void CreateList_L(LinkList &L,int n);//mark
struct LNode *p;
printf("\n\n1.构建一个线性表 2.插入一个元素3.删除一个元素4.结束程序\n");
int demand;
do
{
cout <<"选择一个功能[1,2,3,4]" <<endl;
cin>>demand;
switch(demand)
{
case 1:
{
int n;
printf("输入线性表的个数\n");
cin>>n;
CreateList_L(p,n);
PrintList_L(p,n);
}break;
case 2:
{

}break;
case 3:
{

}break;
case 4:exit(0);
}
}while(demand <=4);
system("pause");
return 0;
}
void CreateList_L(LinkList &L,int n)
{
int i;
LinkList p,q;
L=(LinkList)malloc(LEN); /*生成头结点*/
p=(LinkList)malloc(LEN); /*生成第一个结点,并将头节点的next域指向第一个结点*/
L->next=p;
cin>>(*p).data; //mark;
for(i=1;i <n;i++)
{
q=(LinkList)malloc(LEN);
p->next=q;
cin>>(*q).data;
p=q;
}
p->next = NULL; //mark
}
void PrintList_L(LinkList &L,int n)
{
LinkList plist;
plist=L->next;//L->next=plist;
int i=1;
while(plist!=NULL)
{
cout <<"mem[" <<i <<"]" <<"=" <<(*plist).data <<endl;
plist=plist->next;//plist->next=plist;
i++;
}
}

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧