首页 > 其他分享 >1025 反转链表

1025 反转链表

时间:2024-04-16 13:33:45浏览次数:18  
标签:1025 index int sno fz 链表 start vec 反转

我看其他博客用的reverse,但是下标我真的有点糊涂,以下是参考某位dalao的。

#include <bits/stdc++.h>
using namespace std;
struct node {
	int sno;
	int data;
	int next;
} s[100010];
int main() {
	int start,cnt,fz;//start
	cin>>start>>cnt>>fz;
	for(int i=0; i<cnt; i++) {
		int sno;
		cin>>sno;
		s[sno].sno = sno;
		cin>>s[sno].data>>s[sno].next;
	}
	//start是起始的地址
	int i = start;
	vector<node> vec;
	while(i!=-1) {
		vec.push_back(s[i]);
		i=s[i].next;
	}
	int flag = 0;
	int index = fz - 1;//定位的索引位置
	while(index < vec.size()) {
		//进行反转输出
		for(int i=index; i>index-fz; i--) {
			if(flag==0) {
				printf("%05d %d ",vec[i].sno,vec[i].data);
				flag = 1;
			}else{
				printf("%05d\n%05d %d ",vec[i].sno,vec[i].sno,vec[i].data);
			}
		}
		index += fz;
	}
	//将剩余的部分输出
    index = index - fz + 1;
    for(int i=index;i<vec.size();i++){
    	if(flag==0){
    		printf("%05d %d ",vec[i].sno,vec[i].data);
    		flag = 1;
		}else{
			printf("%05d\n%05d %d ",vec[i].sno,vec[i].sno,vec[i].data);
		}
	}
	cout << "-1\n";
	return 0;
}

标签:1025,index,int,sno,fz,链表,start,vec,反转
From: https://www.cnblogs.com/chengyiyuki/p/18137895

相关文章

  • P10252 线性变换
    原题链接题解本题虽然有思维题做法,但是我认为不具有普世意义,本题的特点在于分治法,即普通算法在平均条件下表现良好,但是在极端条件下极慢,这时候我们需要将极端条件拎出来另做判断code#include<bits/stdc++.h>#definelllonglongusingnamespacestd;intmain(){ios:......
  • C#中 控制反转IOC与依赖注入DI
    一、IOC与DI的关系IOC即控制反转,用来管理项目中对象的生命周期和依赖关系,DI依赖注入,用来实现IOC,IOC是思想,DI是实现,在项目中通常一起出现,像是A类调用B类的方法,IOC容器资源给予对应资源,有助于实现依赖倒置DIP二、DI常用的注入方式(.net的DI默认的是构造函数定义)构造函数注入:构......
  • 说说你对链表的理解?常见的操作有哪些?
    一、是什么链表(LinkedList)是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的,由一系列结点(链表中每一个元素称为结点)组成每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域 节点用代码表......
  • 合并k个已排序链表
    利用新的ArrayList合并k个链表 遍历提供给我们的数组,依次得到各个头结点。依次遍历每个头结点下的链表,把他们加入新的数组中。利用Collections.sort()方法得到有序的数组最后把这个新的数组转换成链表并返回。publicListNodemergeKLists(ArrayList<ListNode>lists){......
  • 随机链表的复制
     随机链表的复制 /*//DefinitionforaNode.classNode{intval;Nodenext;Noderandom;publicNode(intval){this.val=val;this.next=null;this.random=null;}}*/classSolution{publicNode......
  • 链表中环的入口结点
       1.先用快慢指针判断是否存在环2.返回快慢指针相遇的地方,一个指针停留在那里。3.另一个指针回到头节点4.两个节点一起走,每次走一格,再次相遇的地方就是入口节点publicclassSolution{    //判断有没有环,返回相遇的地方    publicListNodehasCycle(ListN......
  • 代码随想录算法训练营第8天 | 字符串 344.反转字符串 541. 反转字符串II 卡码网:54.
    leetcode344.反转字符串题目344.反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用O(1)的额外空间解决这一问题。解题思路实现代码......
  • 链表2: 动态单链表
    链表2:动态单链表定义数据结构//定义链表数据结构typedefstructLNode{intdata;structLNode*next;}LNode;初始化链表//初始化链表LNode*Init_LinkList(){//返回头指针//创建头结点LNode*header=(LNode*)malloc(sizeof(LNode));hea......
  • 链表1: 静态单链表
    链表1:静态单链表单链表的结构链表包含了数据域与指针域,数据域存储数据,指针域存储下一个结点的地址链表的特点链表的优势在于数据的删改,在链表中查询第$i$个元素需要从第一个结点开始遍历链表,,因此在数据的顺序读取中链表的优势不如数组.链表的插入操作设newN......
  • JZ76 删除链表中重复的节点
    1、相似题classSolution{public:ListNode*deleteDuplicates(ListNode*head){//判空if(head==NULL)returnnullptr;ListNode*p1=head;ListNode*p2=p1->next;while(p2){......