首页 > 其他分享 >双向循环链表应用

双向循环链表应用

时间:2023-11-17 11:46:51浏览次数:32  
标签:pre Node pp int next 链表 循环 双向 NULL

已知p指向双向循环链表中的一个结点,其结点结构为data、prior、next三个域,实现交换p所指向的结点和它的前缀结点的顺序。

#include<iostream>
#include<cstring>
using namespace std;
typedef struct f{
int data;
f* next;
f* pre;
}node,*Node;
void build(Node p){
int n;
cin>>n;
while(n--){
int x;
cin>>x;
Node now=new node();
now->data=x;
now->pre=p;
now->next=NULL;
p->next=now;
p=p->next;
}
}
void show(Node p){
p=p->next;
while(p!=NULL){
cout<<p->data;
p=p->next;
}
}
void change(Node p){
Node o=p;
p=p->next;
p=p->next;
int x;
cin>>x;
while(p!=NULL&&p->data!=x){
p=p->next;
}
if(p==NULL){
cout<<"未找到"<<x;
}
else{
Node pp=p->pre,ppp=pp->pre;
Node a=pp->pre,b=pp,c=p,d=p->next;
ppp->next=p;
pp->pre=c;
pp->next=d;
p->pre=a;
p->next=b;
show(o);
}
}

int main(){
Node p=new node();
p->next=NULL;
build(p);
change(p);
return 0;
}

标签:pre,Node,pp,int,next,链表,循环,双向,NULL
From: https://www.cnblogs.com/zh-ang-zhang/p/17838298.html

相关文章

  • 链表逆置
     structListNode*reverse(structListNode*head){if(head==NULL||head->next==NULL){returnhead;}structListNode*p=NULL,*t,*pp=head;while(pp){t=pp->next;pp->next=p;p=pp;pp=t;}......
  • (链表)14-链表的奇偶重排
    1importjava.util.*;23/*4*publicclassListNode{5*intval;6*ListNodenext=null;7*publicListNode(intval){8*this.val=val;9*}10*}11*/12publicclassSolution{13/**14*代码中的类名......
  • 数据双向绑定的原理
    一、双向绑定的逻辑介绍:    双向绑定是一步步实现的,现在我们来考虑,在vue中,双向绑定的事情逻辑是什么。首先,要想实现数据双向绑定就要先实现单向绑定,也就是说,就要先实现vue里的data对象中的数据,能够替代写在template模板里的插值表达式中变量名,实现插值表达式获取数据对象......
  • 关于循环函数if
    循环函数if的的定义是为设定对应的条件,找到对应的目标,然后选定对应目标的输出对一个或多个常量或变量进行赋值了以后通过循环找到符合自身变量的值找到对应的值以后,再根据对应的值进行答应......
  • 多表查询(跨表查询) 子查询 链表查询 正反向查询概念 聚合查询 分组查询 F查询和Q查询
    昨日内容回顾模板之变量所有的数据类型都可以在模板中使用render(request,'index.html',context={''})render(request,'index.html',context=locals())"""在模板中使用变量的时候,用的是字典的key值,key值value值一般保持一致"""模板之过滤器类似于函数,函数才可以传递参......
  • 九、循环(二)
    九、循环(二)1、while循环1)while循环语法//while循环语法while(条件表达式)//条件表达式是一个bool类型的值{循环语句;}//示例inti=9;while(i<0){i--;std::cout<<i;}2)while循环嵌套//while循环嵌套语法while(){while(){......
  • sql server 循环 有那几种 sql实现循环
    SQL循环语句  declare@iint set@i=1 while@i<30 begin insertintotest(userid)values(@i) set@i=@i+1 end1.2.3.4.5.6.7. --------------- while条件 begin 执行操作 set@i=@i+1 end WHILE 设置重复执行SQL语句或语句块的条件。只要指定的条件......
  • 有关链表我终于想通了!!
    head是指向结构体的指针,变量类型是指针,每种变量都放在某个地址上,因此head变量是放在某地址(编译器分配)上的十六进制数,十六进制数表示它指向的链表的地址也就是说,head本身有地址,head实际上存的值,是链表结构体的地址!至于head->next,本质上是结构体的一个成员,所以head->next的......
  • python调用ffmpeg循环播放一个文件夹内的视频,如果播放中断了,下次继续播放可以从上次播
    importosimportsubprocessdefplay_videos_in_folder(folder_path):#获取所有视频文件files=[os.path.join(folder_path,f)forfinos.listdir(folder_path)iff.endswith(('.mp4','.mkv'))]idx=0#视频文件索引whileTrue:......
  • 【vue2】swiper插件自动循环失效(loop失效)
    可能是因为数据是动态渲染的,在请求到数据之前,就已经完成了swiper的初始化,因此解决方案有:1.swiper组件添加v-if:(如以下代码中的v-if="banner.length")<!--轮播图--><div:class="$style.newsBanner"><div:class="$style.swiperBox"><swip......