「java单链表拆成n个」合并两个链表java

博主:adminadmin 2023-01-27 14:15:09 274

本篇文章给大家谈谈java单链表拆成n个,以及合并两个链表java对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

求用Java写的:输入N个整数,按照输入的顺序建立单链表存储,并遍历所建立的单链表,输出这些数据。

import java.util.Scanner;

public class Node {

public int value;

public Node next;

public Node(int value) {

this.value = value;

this.next = null;

}

public void add(Node node) {

this.next = node;

}

public boolean hasNext() {

return this.next == null ? false : true;

}

public static void main(String[] args) {

Node first = null; //记录第一个节点,在后面遍历的时候使用

Node node = null; //保存当前输入的节点使用

Scanner in = new Scanner(System.in); //用于控制台输入,Ctrk+Z结束输入

while(in.hasNext()) {

int v = in.nextInt();

Node n = new Node(v);

if(first == null) {

first = n;

node = n;

} else {

node.add(n);

node = n;

}

}

if(first == null) {

System.out.println("没有数字输入");

} else {

node = first;

System.out.println(node.value + "");

while(node.hasNext()) {

node = node.next;

System.out.println(node.value + " ");

}

}

}

}

模拟最简单的单链表,临时手打,仅供做题等参考,望采纳。

用java怎样将一个正整数L随机拆分成N个正整数

试试这个代码

import java.util.Random;

public class Test {

    public static void main(String[] args)throws Exception{   

        random(5, 100);

    }

    public static void random(int n, int L){

        Random rand = new Random();

        int temp = L;

        for(int i = 0, j; i  n-1; i++){

            j = rand.nextInt(temp-1) + 1;

            temp -= j;

            System.out.println(j);

        }

        System.out.println(temp);

    }

}

如何用Java中的单链表实现约瑟夫环

编程题目不要发帖子,因为很少有人来写。

不过你可以把你写的程序贴出来,让大家修改,大家还是乐意的。

-------我只能用搜索找了一下:-----------

解决问题的核心步骤:

1.建立一个具有n个链结点,无头结点的循环链表

2.确定第1个报数人的位置

3.不断地从链表中删除链结点,直到链表为空

void JOSEPHUS(int n,int k,int m) //n为总人数,k为第一个开始报数的人,m为出列者喊到的数

{

/* p为当前结点 r为辅助结点,指向p的前驱结点 list为头节点*/

LinkList p,r,list;

/*建立循环链表*/

for(int i=0,i

如何创建有N个节点的单链表

#include stdio.h  

#include stdlib.h  

  

//类型定义typedef在使用的时候如果直接按下面的方式定义,是错误的:  

/*typedef struct Node 

   int data; 

   Node * next; 

}; 

*/  

//应该定义为:  

typedef struct node  

{  

   int data;  

   struct node * next;  

}Node;  

  

/*宏定义的后面一定“不能”有分号“;”*/  

#define LEN sizeof(Node)  

#define NULL 0  

main()  

{  

  Node* create(int n);  

  Node* p;  

  p = create(3);  

  while(p != NULL)  

  {  

    printf("%d, ",p-data);  

    p = p-next;  

  }  

  printf("\n");  

}  

Node* create(int n)  

{  

  int i;  

  //定义指针变量时,下面的定义方式是错误的:  

  //node* head, p1, p2;  

  Node *head, *p1, *p2;  

  //head = p2 = NULL;  

  for(i=0;in;i++)  

  {  

     p1 = (Node*)malloc(LEN);  

     printf("Please input the data of your node: \n");  

     scanf("%d",p1-data);  

     if(i==0)  

     p2 = head = p1;  

     else  

     {  

       p2-next = p1;  

     }  

     p1-next = NULL;  

     p2 = p1;  

  }  

  return head;  

}

关于java单链表拆成n个和合并两个链表java的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。