Skip to content

Instantly share code, notes, and snippets.

@Bambina-zz
Bambina-zz / TestDoublyLinkedList.java
Created March 14, 2017 06:58
2.7 連結リストが回文(先頭から巡回しても末尾から巡回しても、各ノードの要素がまったく同じになっている)かどうかを調べる関数を実装してください。
import java.util.*;
import org.junit.*;
import static org.junit.Assert.*;
public class TestDoublyLinkedList {
@Test
public void testDoublyLinkedList(){
DoublyLinkedList<Integer> list = new DoublyLinkedList<Integer>();
list.addFirst(1);
list.addFirst(2);
@Bambina-zz
Bambina-zz / TestLinkedList.java
Last active March 14, 2017 03:23
2.6 循環する連結リストが与えられたとき、循環する最初のノードを返すアルゴリズムを実装してください。
import java.util.*;
import org.junit.*;
import static org.junit.Assert.*;
// 定義
// 循環を含む連結リスト: 連結リストAではループを作るために、リスト内のノードの次へのポインタが以前に出現したノードを指している。
//
// 例
// 入力: A->B->C->D->E->C(最初のCと同じもの)
// 出力: C
@Bambina-zz
Bambina-zz / TestLinkedList.java
Created March 13, 2017 05:46
【解答2】2.5 各ノードの要素が1桁の数である連結リストで表された2つの数があります。一の位がリストの末尾になるように、上位の桁から順方向に連結されています。このとき2つの数の和を求め、それを連結リストで表したものを返す関数を書いてください。
import java.util.*;
import org.junit.*;
import static org.junit.Assert.*;
public class TestLinkedList {
@Test
public void testAddLists() {
// 617 + 295 = 912
// (6->1->7) + (2->9->5) = (9->1->2)
LinkedList<Integer> l1 = new LinkedList<Integer>();
@Bambina-zz
Bambina-zz / c++_syntax.cpp
Created January 29, 2017 13:49
C++のクラス定義
#include <iostream>
int main() {
class A { // Aクラス
public:
int a; // メンバ変数
A() { // コンストラクタ
a = 1;
}
};
@Bambina-zz
Bambina-zz / const.cpp
Last active September 25, 2018 21:32
メンバ関数とポインタ変数にconst修飾子をつけた時の動き
// Compile with c++(clang++) method.
// constをつけたメンバ関数は、メンバ変数の変更ができない
class A {
public:
int a;
void funcConst() const {
// a = 1; // => error: cannot assign to non-static data member within const member function 'funcConst'
}
@Bambina-zz
Bambina-zz / sqrt.go
Last active January 24, 2017 00:36
関数とループを使った簡単な練習として、 ニュートン法 を使った平方根の計算を実装してみましょう。( https://go-tour-jp.appspot.com/flowcontrol/8 )
package main
// 1.41421 35623 73095 04880
// f(x) = x^2-C (C is given)
// f'(x) = 2x
// 2z0 = z0^2 - C / z0 - z1
// z1 = (zn + C/zn) / 2
import (
@Bambina-zz
Bambina-zz / TestLinkedList.java
Created January 3, 2017 02:49
【解答】2.5 各ノードの要素が1桁の数である連結リストで表された2つの数があります。一の位がリストの先頭になるように、各位の数は逆順に並んでいます。このとき2つの数の和を求め、それを連結リストで表したものを返す関数を書いてください。
import java.util.*;
import org.junit.*;
import static org.junit.Assert.*;
public class TestLinkedList {
@Test
public void testAddLists() {
// (7->1->6) + (5->9->2) = (2->1->9)
LinkedList<Integer> l1 = new LinkedList<Integer>();
l1.addLast(7);
@Bambina-zz
Bambina-zz / TestLinkedList.java
Created January 1, 2017 02:01
【解答2】2.4 ある数xが与えられたとき、連結リストの要素を並び替え、xより小さいものが前にくるようにするコードを書いてください。
import java.util.*;
import org.junit.*;
import static org.junit.Assert.*;
public class TestLinkedList {
@Test
public void testPartition() {
LinkedList<Integer> list = new LinkedList<Integer>();
list.addLast(9);
list.addLast(4);
@Bambina-zz
Bambina-zz / TestLinkedList.java
Last active December 24, 2016 07:04
【解答1】2.4 ある数xが与えられたとき、連結リストの要素を並び替え、xより小さいものが前にくるようにするコードを書いてください。
import java.util.*;
import org.junit.*;
import static org.junit.Assert.*;
public class TestLinkedList {
@Test
public void testPartition() {
LinkedList<Integer> list = new LinkedList<Integer>();
list.addLast(9);
list.addLast(4);
@Bambina-zz
Bambina-zz / TestLinkedList.java
Created December 24, 2016 01:33
【解答】2.3 単方向連結リストにおいて、中央の要素のみアクセス可能であるとします。その要素を削除するアルゴリズムを実装してください。 例 入力: a->b->c->d->eという連結リストのcが与えられます。 結果: 何も返しませんが、リストはa->b->d->eのように見えます。
import java.util.*;
import java.io.*;
import org.junit.*;
import static org.junit.Assert.*;
public class TestLinkedList {
@Test
public void testGetMidIndex() {
LinkedList<Integer> list = new LinkedList<Integer>();
list.addLast(1);