「java单链表拆成n个」合并两个链表java
本篇文章给大家谈谈java单链表拆成n个,以及合并两个链表java对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、求用Java写的:输入N个整数,按照输入的顺序建立单链表存储,并遍历所建立的单链表,输出这些数据。
- 2、用java怎样将一个正整数L随机拆分成N个正整数
- 3、如何用Java中的单链表实现约瑟夫环
- 4、如何创建有N个节点的单链表
求用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的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。