请大佬看看我这种动态链表的写法是否正确

「已注销」 东北大学 学生  2020-09-26 09:19:06
一开始学习动态链表的时候没认真,后来自己自学了一下,经过看了一些代码后,发现每个人的写法都不太一样。于是我根据自己的理解写了一个简单的动态链表。请大佬帮忙看看我这种写法有没有问题?
#include <stdlib.h>
#include <iostream>
#include <conio.h>

using namespace std;

typedef struct LNode
{
int data;
struct LNode* next;
}LNode, * LinkList;
int main()
{
LinkList l, p;
l = (LNode*)malloc(sizeof(LNode));
l->next = NULL;
int i;
for(i=0;i<5;i++)
{
p = (LNode*)malloc(sizeof(LNode));
cin >> p->data;
cout << p->data << " ";
p->next = NULL;
l->next = p;
}
return 0;
}
...全文
37 点赞 收藏 6
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10768339.html
回复
赵4老师 2020-09-27
数据结构对单链表进行数据排序 http://bbs.csdn.net/topics/392201633
回复
「已注销」 2020-09-27
非常感谢大佬们的指点
回复
chxchxkkk 2020-09-27

#include <iostream>
using namespace std;

typedef struct LinkNode
{
    int data;
    struct LinkNode *next;
}LNode, *Link;

int main()
{
    Link pM, pHead = NULL;

    pHead = new LNode;
    pM = pHead;
    int ret = 0;

    cout << "输入链表结点的值(-1结束)" << endl;
    while ( 1 )
    {
        cin >> ret;
        if ( ret != -1 )
        {
            Link pNode = new LNode;
            pNode->data = ret;
            pNode->next = NULL;
            pM->next = pNode;
            pM = pNode;
        }
        else
        {
            break;
        }
    }

    Link pMove = pHead->next;
    while ( pMove != NULL )
    {
        cout << pMove->data << " ";
        pMove = pMove->next;
    }
    cout << "NULL" << endl;

    
    while ( pHead != NULL )
    {
        Link pTemp = pHead;                
        pHead = pHead->next;
        delete pTemp;
    }
    if ( pHead != NULL )
        delete pHead;

    system("pause");
    return 0;
}
回复
qybao 2020-09-26
不正确,因为p的next节点没有连接起来,结果只有一个l节点和一个p节点 对比一下以下的修改 p=l; //追加 for(i=0; i<5; i++) { if(p!=l) {//如果不是头节点就追加一个节点 p->next=(LNode*)malloc(sizeof(LNode)); p=p->next;//然后p指向新节点 } cin>>p->data; cout<<p->data<<“ “; p->next=NULL; }
回复
不对,因为每次都是l->next 指向了新建的节点,所以无法成为链。
回复
相关推荐
发帖
C++ 语言
创建于2007-09-28

6.0w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
申请成为版主
帖子事件
创建了帖子
2020-09-26 09:19
社区公告
暂无公告