// 삭제를 실행하는 fDataOut 메소드
        private void fDataOut()
        {
            if (Minheap.isEmpty()) // 만약 힙이 비어있으면 삭제 할 수 없도록 안내문을 입력해준다.
            {
                addnumTxt.Text  = "";
                addnumTxt2.Text = "";
                MessageBox.Show("삭제 할 수 있는 노드가 존재하지 않습니다.");
                removenumTxt1.Text = "더이상 삭제를 할 수 없습니다.";
                removenumTxt2.Text = "";
            }
            else
            {
                addnumTxt.Text     = "";
                addnumTxt2.Text    = "";
                removenumTxt1.Text = "삭제된 루트 노드 :";
                removenumTxt2.Text = Minheap.node[1].ToString(); // 삭제할 뿌리노드를 폼화면에 출력해주는 역할
                Minheap.remove();                                // Minheap의 remove실행
                int     num = Minheap.node.Count - 1;
                Label[] lb  = new Label[] { a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15 };
                lb[num + 1].Text        = "";    // 삭제 하기전 맨 마지막 노드의 정보를 삭제를 한 이후에는 폼 화면에 나타내지 않기 위해 공백을 넣어준다.
                table_list[num].Visible = false; // 맨 마지막 노드 자리에 아무것도 출력되지 않도록 해준다.
                label_list[num].Visible = false;

                for (int i = num; i > 0; i--)
                {
                    lb[i].Text = Minheap.node[i].ToString();
                }
            }
        }
        //
        private void fDataIn()
        {
            Label[] lb = new Label[] { a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15 };
            // lb라는 라벨 배열을 만들어서 숫자를 나타내게 하는 라벨의 정보들을 넣는다.
            Random random         = new Random();        // 랜덤을 이용해서 난수를 생성한다.
            int    winning_number = random.Next(0, 151); // 0부터 150까지의 숫자들 중에서 랜덤으로 숫자를 winning_number에 넣는다.

            if (Minheap.node.Count == 0)                 // 만약 노드의 count가 0이면 key값은 0으로 넘겨주고 , true를 넘겨준다. 그리고 난뒤 return;
            {
                Minheap.insert(0, true);
                return;
            }
            // 노드의 카운트가 0이 아닐 경우
            else
            {
                removenumTxt1.Text = "";
                removenumTxt2.Text = "";
                addnumTxt.Text     = "추가된 노드의 값 :";             // 추가된 노드의 값을 알려주는 안내문1
                addnumTxt2.Text    = winning_number.ToString(); // 추가된 노드의 값을 알려주는 안내문2

                if (Minheap.node.Count < 16)                    // 만약 노드의 카운트가 15개이하일 경우에만 실행된다.
                {
                    Minheap.insert(winning_number, false);      // Maxheap insert 메소드 실행, 매개변수에는 난수를 넣어준다.
                    for (int i = 0; i < Minheap.node.Count - 1; i++)
                    {
                        // for문을 이용해서 노드의 개수에 맞춰서 노드의 개수를 알려주는 라벨과 테이블패널의 visible을 true로 바꿔서
                        // 폼에 나타나도록 한다.
                        label_list[i].Visible = true;
                        table_list[i].Visible = true;
                    }
                    foreach (var list_max in Minheap.node)
                    {
                        int num = Minheap.node.Count; // num에는 현재 노드의 count를 대입

                        lb[0].Text = "";              // lb[0]에는 쓰레기값 0을 넣었으므로 표시가 되기때문에 ""를 통해 폼화면에는 아무것도 나타나지 않도록 함.
                        for (int i = 1; i < num; i++)
                        {
                            lb[i].Text = Minheap.node[i].ToString(); // 노드의 숫자들을 폼에 표현하기 위해 만들어둔 라벨 배열에다가
                            //노드 숫자의 값들을 입력해준다.
                        }
                    }
                }
                else
                {
                    //노드의 카운트가 16을 넘어갈 경우에는 더이상 추가 할 수 없다는 안내문을 출력해준다.
                    MessageBox.Show("더이상 추가할 수 없습니다.");
                    removenumTxt1.Text = "";
                    removenumTxt2.Text = "";
                    addnumTxt.Text     = "더이상 추가 할 수 없습니다. ";
                    addnumTxt2.Text    = "";
                }
            }
        }