欢迎来到天天文库
浏览记录
ID:13764517
大小:114.01 KB
页数:11页
时间:2018-07-24
《编写算法依次访问无头结点的单循环链表》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验二<1>编写算法依次访问无头结点的单循环链表#includestructnode{intdata;structnode*next;};typedefnode*link;voidcreate_list(link&l)//建立无头结点的单循环链表{linkp,R;intx=0;cin>>x;l=newnode;R=l;l->data=x;l->next=R;while(x!=-9999){cin>>x;p=newnode;p->data=x;l->next=p;l=l->next;p->next=R;}}voidshow_me
2、ssage(link&l)//访问输出链表各结点值{if(l==NULL){cout<<"未建立链表!"<next;inti=1;while(p!=NULL&&p!=l){cout<<"指针位置是:"<data<<""<next;i++;}}voidmain(){linkl;cout<<"请输入整数建立链表(输入-9999时结束):"<3、;}实验运行结果:<2>编写算法以判断一个带头结点的单循环链表是否满足这样的条件:其中每个结点的元素值与其序号的差的绝对值不大于3。流程图如下:node*l;p=l->next;inti=1;Nreturnfalse4、p->data-i5、<=3p=p->next;P==l;i++Yreturntrue#include"iostream.h"#include"math.h"structnode{intdata;structnode*next;};typedefnode*link;voidCreate_cchsllist(link&l)//建立带头结点的6、单循环链表{l=newnode;node*R,*u;intx;R=l;cin>>x;while(x!=-9999){u=newnode;u->data=x;R->next=u;R=u;cin>>x;}R->next=l;}voidjudge_cchsllist(link&l)//某位置的序号与元素值之间的关系{node*p;p=l->next;if(p==NULL)cout<<"建立的链表为空!"<data-j)<=3){p=p->next;j++;if(p==l){cout<<7、"满足条件!"<求两个递增有序链表的交集和并集。求交集的流程图:产生头结点。设置尾指Rcp1=p1->next;p1=p2->nextP1,p2不空P1->data与p2->data比较next>p2=p2->next8、=在L后插入结点p1p2后移N表尾的后继结点为空求并集的流程图:产生头结点。设置尾指Rcp1=p1->next;p1=p2->nextP1,p2不空P1->data与p2->data比较<在l后加入结点p1=p1->next;>在l后加入结点p2=p2->next=在L后插入结点p1p2后移N表尾的后继结点为空#include"iostream.h"structnode{intdata;structnode*next;};typedefnode*link;voidCreate_hsllist(link&l)//建立带头结点的单链表{l=newnode9、;linku,R;intx=0;R=l;cin>>x;while(x!=-9999){u=newnode;u->data=x;R->next=u;R=u;cin>>x;}R->next=NULL;}voiddisp_hsllist(node*&l)//链表输出函数{node*m;m=l->next;if(m==NULL)cout<<"链表为空!"<data<<"";m=m->next;}}voidInterset(node*&l,node*l1,node*l2)//求两个递增链表的交集{no10、de*p1,*p2,*u,*r;l=newnode;r=l;if(l1==NULL11、12、l2==NULL){c
data<<""<next;i++;}}voidmain(){linkl;cout<<"请输入整数建立链表(输入-9999时结束):"<3、;}实验运行结果:<2>编写算法以判断一个带头结点的单循环链表是否满足这样的条件:其中每个结点的元素值与其序号的差的绝对值不大于3。流程图如下:node*l;p=l->next;inti=1;Nreturnfalse4、p->data-i5、<=3p=p->next;P==l;i++Yreturntrue#include"iostream.h"#include"math.h"structnode{intdata;structnode*next;};typedefnode*link;voidCreate_cchsllist(link&l)//建立带头结点的6、单循环链表{l=newnode;node*R,*u;intx;R=l;cin>>x;while(x!=-9999){u=newnode;u->data=x;R->next=u;R=u;cin>>x;}R->next=l;}voidjudge_cchsllist(link&l)//某位置的序号与元素值之间的关系{node*p;p=l->next;if(p==NULL)cout<<"建立的链表为空!"<data-j)<=3){p=p->next;j++;if(p==l){cout<<7、"满足条件!"<求两个递增有序链表的交集和并集。求交集的流程图:产生头结点。设置尾指Rcp1=p1->next;p1=p2->nextP1,p2不空P1->data与p2->data比较next>p2=p2->next8、=在L后插入结点p1p2后移N表尾的后继结点为空求并集的流程图:产生头结点。设置尾指Rcp1=p1->next;p1=p2->nextP1,p2不空P1->data与p2->data比较<在l后加入结点p1=p1->next;>在l后加入结点p2=p2->next=在L后插入结点p1p2后移N表尾的后继结点为空#include"iostream.h"structnode{intdata;structnode*next;};typedefnode*link;voidCreate_hsllist(link&l)//建立带头结点的单链表{l=newnode9、;linku,R;intx=0;R=l;cin>>x;while(x!=-9999){u=newnode;u->data=x;R->next=u;R=u;cin>>x;}R->next=NULL;}voiddisp_hsllist(node*&l)//链表输出函数{node*m;m=l->next;if(m==NULL)cout<<"链表为空!"<data<<"";m=m->next;}}voidInterset(node*&l,node*l1,node*l2)//求两个递增链表的交集{no10、de*p1,*p2,*u,*r;l=newnode;r=l;if(l1==NULL11、12、l2==NULL){c
3、;}实验运行结果:<2>编写算法以判断一个带头结点的单循环链表是否满足这样的条件:其中每个结点的元素值与其序号的差的绝对值不大于3。流程图如下:node*l;p=l->next;inti=1;Nreturnfalse
4、p->data-i
5、<=3p=p->next;P==l;i++Yreturntrue#include"iostream.h"#include"math.h"structnode{intdata;structnode*next;};typedefnode*link;voidCreate_cchsllist(link&l)//建立带头结点的
6、单循环链表{l=newnode;node*R,*u;intx;R=l;cin>>x;while(x!=-9999){u=newnode;u->data=x;R->next=u;R=u;cin>>x;}R->next=l;}voidjudge_cchsllist(link&l)//某位置的序号与元素值之间的关系{node*p;p=l->next;if(p==NULL)cout<<"建立的链表为空!"<data-j)<=3){p=p->next;j++;if(p==l){cout<<
7、"满足条件!"<求两个递增有序链表的交集和并集。求交集的流程图:产生头结点。设置尾指Rcp1=p1->next;p1=p2->nextP1,p2不空P1->data与p2->data比较next>p2=p2->next
8、=在L后插入结点p1p2后移N表尾的后继结点为空求并集的流程图:产生头结点。设置尾指Rcp1=p1->next;p1=p2->nextP1,p2不空P1->data与p2->data比较<在l后加入结点p1=p1->next;>在l后加入结点p2=p2->next=在L后插入结点p1p2后移N表尾的后继结点为空#include"iostream.h"structnode{intdata;structnode*next;};typedefnode*link;voidCreate_hsllist(link&l)//建立带头结点的单链表{l=newnode
9、;linku,R;intx=0;R=l;cin>>x;while(x!=-9999){u=newnode;u->data=x;R->next=u;R=u;cin>>x;}R->next=NULL;}voiddisp_hsllist(node*&l)//链表输出函数{node*m;m=l->next;if(m==NULL)cout<<"链表为空!"<data<<"";m=m->next;}}voidInterset(node*&l,node*l1,node*l2)//求两个递增链表的交集{no
10、de*p1,*p2,*u,*r;l=newnode;r=l;if(l1==NULL
11、
12、l2==NULL){c
此文档下载收益归作者所有