B 객체 유형에 대한 참조를 보유하고 있지만 이번에는 null로 초기화되는 객체 A가 있다고 가정합니다.함수에서 참조 유형 매개 변수 전달 및 업데이트
A->B(== null)
나는 C.
(B->C)
를 입력 참조를 보관 유지 타입 B의 객체에 널을 대체합니다.
그래서 나는 A->B->C
을 얻을 것이다.
B 객체의 참조를 제공하여 링크 할 수없는 이유는 무엇입니까? (null을 포함하지만 장면의 특수한 메모리 주소에 연결되어 있고 null이 아닌 C 객체를 할당하면 이후에 A -> B-> C
가 왜이 조작을 수행 할 수있는 위해는 A 객체 전달해야합니다이 질문을 이해하려고 노력을 요구한다
왜 다음과 같은 코드 : A와 새로운 노드의 삽입? 특정 노드의 하위 노드가 작동하지 않습니다. 코드는 다음과 같습니다.
public void InsertNodeToTreeLDR(TreeNode newNode)
{
var currRoot = Root;
InsertNodeToTreeHelper(ref currRoot, newNode);
}
private void InsertNodeToTreeHelper(ref TreeNode currTreeRoot, TreeNode newNode)
{
if (currTreeRoot == null)
{
currTreeRoot = newNode;
return;
}
else if (newNode.Data.CompareTo(currTreeRoot.Data) >= 0)
{
var currRootLeftChild = currTreeRoot.Leftchild;
InsertNodeToTreeHelper(ref currRootLeftChild, newNode);
}
else
{
var currRootRightChild = currTreeRoot.RightChild;
InsertNodeToTreeHelper(ref currRootRightChild, newNode);
}
}
참고 :
이 코드는 모든 코드를 포함하지 않으므로이 함수는 TreeNode 유형의 루트를 보유하는 Tree Class의 일부입니다.
데이터가 == 2 (int) 인 루트가있는 트리가 있고 데이터 == 1로 새 왼쪽 자식을 추가하려고한다고 생각하십시오.
구현시 노드와 하위 사이의 링크가 작동하지 않습니다.
var currRootLeftChild = currTreeRoot.Leftchild;
InsertNodeToTreeHelper(ref currRootLeftChild, newNode);
가 ... 위의 코드에서, currRootLeftChild 로컬 변수 :
"null을 포함하지만 아마도 특정 메모리 주소와 연결되어 있습니다."유효한 메모리 주소에 어떻게 연결할 수 있습니까? –
B 타입의 셀을 주소 지정하는 "포인터"와 같은 B에 대한 보류 참조이며 그 안에 null이 있습니다. 어떻게 보입니까? – JavaSa
목표가 불분명합니다. 모호한 포인터 대신 실제 C# 코드를 사용하여 수행 할 작업의 예를 게시 할 수 있습니까? –