新手问题,求热心人指点。

夜夜风_ 2011-11-22 07:42:31
#include <iostream>
using namespace std ;
typedef int ElemType ;
struct Node {
ElemType data ;
Node* next ;
};
typedef Node* LinkList ;
LinkList CreateList_Tail (LinkList *L ) //创建链表 后插法
{
int n ;
cout << "输入链表长度:" ;
cin >> n ;
*L = ( LinkList ) malloc (sizeof ( Node ) ) ;
( *L )->next = NULL ;
LinkList p ;
p = *L ;
for ( int i = 1; i <= n; i++ )
{
p = ( LinkList ) malloc ( sizeof ( Node ) ) ;
ElemType data = ( ElemType ) malloc ( sizeof ( ElemType ) ) ;
printf ( "输入第%d个元素" , i ) ;
cin >> data ;
p->data = data ;
p->next = p ;
}
p->next = NULL ;
return *L ;
}
//Traversal 遍历链表;
void Traversal ( LinkList L )
{
LinkList p = ( LinkList ) malloc ( sizeof ( Node ) ) ;
p = L ;
while ( p )
{
int i = 1 ;
cout << p->data ;
p = p->next ;
if ( i%7 == 0)
cout << endl ;
i++ ;
}
}
int main ()
{
LinkList *L = ( LinkList* ) malloc ( sizeof ( Node ) ) ;
LinkList l = CreateList_Tail ( L ) ;
Traversal ( l ) ;
return 0 ;
}


遍历那里出问题了,不知道是什么问题,是输入那里还是输出那里的问题,求大侠指点迷津!
...全文
77 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
夜夜风_ 2011-11-22
  • 打赏
  • 举报
回复
我明白我错在哪里了!是创建那块!应该是先生成个节点再放进链表里边对吧!还有遍历那块的 i 我居然放进把 定义放进循环里边了,哎 我太笨了!感谢wangliangffaflgh 你的指点! 谢谢!
测试NULL 2011-11-22
  • 打赏
  • 举报
回复
我还是帮你标出来吧,这样看起来方便些:

#include <iostream>
using namespace std;
typedef int ElemType;

struct Node {
ElemType data;
Node* next;
};

typedef Node* LinkList;
LinkList CreateList_Tail(LinkList *L) //创建链表 后插法
{
int n;
cout << "输入链表长度:";
cin >> n;
*L = (LinkList) malloc (sizeof (Node));
(*L)->next = NULL;
LinkList p;
p = *L;
for (int i = 1; i <= n; i++)
{
LinkList node = (LinkList) malloc (sizeof (Node)); //改动
ElemType data; //改动
printf ("输入第%d个元素" , i);
cin >> data;
node->data = data; //改动
node->next = NULL; //改动

p->next = node; //改动
p = node; //改动
}

return *L;
}

//Traversal 遍历链表;
void Traversal(LinkList L)
{
LinkList p = L->next; //改动
int i = 1; //改动
while (p)
{
cout << p->data << " ";
p = p->next;
if (i%7 == 0)
cout << endl;
i++;
}
cout << endl;
}

int main()
{
LinkList *L = (LinkList*) malloc (sizeof (Node));
LinkList l = CreateList_Tail (L);
Traversal (l);
return 0;
}

测试NULL 2011-11-22
  • 打赏
  • 举报
回复
改好了,由于程序比较短,改动的地方你自己对照看看
如果有问题加我Q:506341588

#include <iostream>
using namespace std;
typedef int ElemType;

struct Node {
ElemType data;
Node* next;
};

typedef Node* LinkList;
LinkList CreateList_Tail(LinkList *L) //创建链表 后插法
{
int n;
cout << "输入链表长度:";
cin >> n;
*L = (LinkList) malloc (sizeof (Node));
(*L)->next = NULL;
LinkList p;
p = *L;
for (int i = 1; i <= n; i++)
{
LinkList node = (LinkList) malloc (sizeof (Node));
ElemType data = (ElemType) malloc (sizeof (ElemType));
printf ("输入第%d个元素" , i);
cin >> data;
node->data = data;
node->next = NULL;

p->next = node;
p = node;
}

return *L;
}

//Traversal 遍历链表;
void Traversal(LinkList L)
{
LinkList p = L->next;
int i = 1;
while (p)
{
cout << p->data << " ";
p = p->next;
if (i%7 == 0)
cout << endl;
i++;
}
cout << endl;
}

int main()
{
LinkList *L = (LinkList*) malloc (sizeof (Node));
LinkList l = CreateList_Tail (L);
Traversal (l);
return 0;
}

33,319

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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