创建新的顺序表Sqlist和链表LNode

文章展示了如何使用C++创建顺序表Sqlist并通过遍历插入元素,以及创建单链表LNode并进行数据插入及链表打印。主要内容包括结构体定义、动态内存分配和输入输出操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建新顺序表Sqlist

就是按照正常创建结构体数组形式,并在数组里遍历插入即可

#include <iostream>

using namespace std;

typedef struct
{
    int A[5]={0};//存放顺序表元素的数组并初始化
    int n;
}Sqlist;

int createlist(Sqlist &q)
{
    cout<<"输入长度"<<endl;
    cin>>q.n;
    int a=q.n;
    if(a>5)
    {
        return -1;
    }
    for (int i=0;i<a;i++)
    {
        cout<<"请输入数值"<<endl;
    cin>>q.A[i];
    }
    return 0;
}
int main()
{
    Sqlist t;
    createlist(t);
    for (int i=0;i<5;i++)
    {
        cout<<"数组为"<<t.A[i]<<endl;
    }
    return 0;
}


运行结果如下图:
在这里插入图片描述

创建新链表LNode

#include <iostream>

using namespace std;

typedef struct LNode
{
    int data; //data中存放该节点数据,默认int
    struct LNode *next;    //指向后继节点指针
}LNode;     //定义单链表结构类型

void createLinkListR(LNode *&head)//插入链表数据
{
    head=(LNode*)malloc(sizeof(LNode));
    head->next=NULL;
    LNode *p=NULL,*r=head;       //每一个p是链表中的数据节点,r是当前链表的尾节点
    int n;
    cout<<"输入链表长度:"<<endl;
    cin>>n;

    for (int i=0;i<n;++i)
    {
        p=(LNode*)malloc(sizeof(LNode));//创建一个新的节点,为节点申请新的存储空间并用p指向它
        p->next=NULL;//没创建一个新的节点,next指针指向空是一个很好的习惯
        cout<<"输入节点值:"<<endl;
       cin>>p->data; //输入链表数据回车结束
       p->next=r->next;//统一为在中部插入
       r->next =p;
       r=p;
    }
}
void printLink(LNode *head)//遍历创建的链表
{
    LNode *pre =head;
    while(head) {
        cout<<"链表节点值为"<<head->data<<endl;        
        head=head->next;
    }
    cout<<endl;

}
int main()
{
    LNode *t;
    createLinkListR(t);
    printLink(t);
    return 0;
}

运行结果如下:
不知为何此代码打印的时候会多个0怀疑是头链表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值