创建新顺序表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;
}
运行结果如下: