数据结构作业建立带头结点的链表
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
temp->data = x;
temp->next = NULL;
pa->next = temp;
}
void PrintList(LinkList &l)//打印链表元素
{
LinkList pa = l->next;
int count = 0;
while(pa)
{
printf("%d\t", pa->data);
}
p=new node;
cin>>x;
p->data=x;
p->next=NULL;
head=last=p;
if(n==1)return;
for(i=1;i<=n-1;i++)
{ p=new node;
last->next=p;
cin>>x;
p->data=x;
last=p;
}
p->next=NULL;
数据结构作业2
第一题
#include<iostream>
using namespace std;
struct Node
{
int data;
Node *next;
Node():data(0){next=NULL;}
Node(int d){data=d;next=NULL;}
}; //带头节点的单链表
class List
pa=pa->next;
pa->next=hb->next;
}
}
int main()
{
LinkList ha, hb, hc;
InitList(ha);
InitList(hb);
InitList(hc);
for(int i=0; i<8; i++)
AddList(ha,i);
printf("链表ha的元素有:\n");
void InitList(LinkList &l)//初始化链表
{
l = new Node;
l->next = NULL;
}
void AddList(LinkList &l, int x)//插入元素
{
LinkList pa=l;
while(pa->next)
{
pa = pa->next;
}
LinkList temp = new Node;
r->next=h;
r=h;
}
} //打印链表中所有的值
void Printlist()const{
Node*p=head->next;
while(p){
cout<<p->data;
if(p->next)cout<<",";
p=p->next;
}
}
};
int main(){
int datas[]={2,4,6,8,10};
pa=ha;
pb=hb;
while(pa->next&&pb->next)
{
pa=pa->next;
pb=pb->next;
}
if(!pa->next)
{
hc=hb;wenku.baidu.com
while(pb->next)
pb=pb->next;
pb->next=ha->next;
}
else
{
hc = ha;
while(pa->next)
else
{
while(p->data!=e)
{ p1=p;
p=p->next;
++i;
}
if(p==NULL)cout<<"链表中没有要找的结点"<<endl;
}
cout<<i<<endl;
}
void main()
{ node *head1=NULL;
int e;
cout<<"输入节点数:"<<endl;
int data;
struct node *next;
};
void creat(node * &head,int n)
{
if(n==0){head=NULL;return;}
cout<<"从键盘上输入"<<n<<"个整数:";
int x,i;
node *last,*p;
last=head=NULL;
{
Node*head;
public:
List(){
head=new Node();
} //用数组初始化链表
List(int datas[],int n){
head=new Node();
Node*h,*r;
r=head;
for(int i=0;i<n;i++){
h=new Node(datas[i]);
List list(datas,sizeof(datas)/sizeof(int));
cout<<"List is";
list.Printlist();
cout<<endl;
return 0;
}
第二题
#include<iostream>
using namespace std;
struct node
{
}
int Locate(node *&head,int e)
{
node *p,*p1;
p=head;
int i=1;
if(head==NULL)
{ cout<<"链表为空,无结点可找"<<endl;
return 0;
}
else
if(p->data==e)
{ cout<<i<<endl;
return 0; }
count++;
if(count % 5 == 0)
printf("\n");
pa=pa->next;
}
if(count % 5 != 0)
printf("\n");
}
void MergeList_L(LinkList &ha, LinkList &hb, LinkList &hc)//合并链表
{
LinkList pa, pb;
PrintList(ha);
for(int j=8; j<10;j++)
AddList(hb,j);
printf("链表hb的元素有:\n");
PrintList(hb);
MergeList_L(ha, hb, hc);//连接操作
printf("合并后链表hc的元素有:\n");
PrintList(hc);
cin>>e;
creat(head1,e);
cout<<"输入要查找的数:";
cin>>e;
Locate(head1,e);
}
第三题
#include<iostream>
using namespace std;
typedef struct Node
{
int data;
Node *next;
}*LinkList;
temp->next = NULL;
pa->next = temp;
}
void PrintList(LinkList &l)//打印链表元素
{
LinkList pa = l->next;
int count = 0;
while(pa)
{
printf("%d\t", pa->data);
}
p=new node;
cin>>x;
p->data=x;
p->next=NULL;
head=last=p;
if(n==1)return;
for(i=1;i<=n-1;i++)
{ p=new node;
last->next=p;
cin>>x;
p->data=x;
last=p;
}
p->next=NULL;
数据结构作业2
第一题
#include<iostream>
using namespace std;
struct Node
{
int data;
Node *next;
Node():data(0){next=NULL;}
Node(int d){data=d;next=NULL;}
}; //带头节点的单链表
class List
pa=pa->next;
pa->next=hb->next;
}
}
int main()
{
LinkList ha, hb, hc;
InitList(ha);
InitList(hb);
InitList(hc);
for(int i=0; i<8; i++)
AddList(ha,i);
printf("链表ha的元素有:\n");
void InitList(LinkList &l)//初始化链表
{
l = new Node;
l->next = NULL;
}
void AddList(LinkList &l, int x)//插入元素
{
LinkList pa=l;
while(pa->next)
{
pa = pa->next;
}
LinkList temp = new Node;
r->next=h;
r=h;
}
} //打印链表中所有的值
void Printlist()const{
Node*p=head->next;
while(p){
cout<<p->data;
if(p->next)cout<<",";
p=p->next;
}
}
};
int main(){
int datas[]={2,4,6,8,10};
pa=ha;
pb=hb;
while(pa->next&&pb->next)
{
pa=pa->next;
pb=pb->next;
}
if(!pa->next)
{
hc=hb;wenku.baidu.com
while(pb->next)
pb=pb->next;
pb->next=ha->next;
}
else
{
hc = ha;
while(pa->next)
else
{
while(p->data!=e)
{ p1=p;
p=p->next;
++i;
}
if(p==NULL)cout<<"链表中没有要找的结点"<<endl;
}
cout<<i<<endl;
}
void main()
{ node *head1=NULL;
int e;
cout<<"输入节点数:"<<endl;
int data;
struct node *next;
};
void creat(node * &head,int n)
{
if(n==0){head=NULL;return;}
cout<<"从键盘上输入"<<n<<"个整数:";
int x,i;
node *last,*p;
last=head=NULL;
{
Node*head;
public:
List(){
head=new Node();
} //用数组初始化链表
List(int datas[],int n){
head=new Node();
Node*h,*r;
r=head;
for(int i=0;i<n;i++){
h=new Node(datas[i]);
List list(datas,sizeof(datas)/sizeof(int));
cout<<"List is";
list.Printlist();
cout<<endl;
return 0;
}
第二题
#include<iostream>
using namespace std;
struct node
{
}
int Locate(node *&head,int e)
{
node *p,*p1;
p=head;
int i=1;
if(head==NULL)
{ cout<<"链表为空,无结点可找"<<endl;
return 0;
}
else
if(p->data==e)
{ cout<<i<<endl;
return 0; }
count++;
if(count % 5 == 0)
printf("\n");
pa=pa->next;
}
if(count % 5 != 0)
printf("\n");
}
void MergeList_L(LinkList &ha, LinkList &hb, LinkList &hc)//合并链表
{
LinkList pa, pb;
PrintList(ha);
for(int j=8; j<10;j++)
AddList(hb,j);
printf("链表hb的元素有:\n");
PrintList(hb);
MergeList_L(ha, hb, hc);//连接操作
printf("合并后链表hc的元素有:\n");
PrintList(hc);
cin>>e;
creat(head1,e);
cout<<"输入要查找的数:";
cin>>e;
Locate(head1,e);
}
第三题
#include<iostream>
using namespace std;
typedef struct Node
{
int data;
Node *next;
}*LinkList;