您的位置:首页 > 编程语言 > C语言/C++

C++实现复杂链表

2014-09-29 22:17 281 查看
#include<iostream>

using namespace std;

struct ComplexListNode

{
int m_nValue;
ComplexListNode* m_pNext;
ComplexListNode* m_pSibling;

};

ComplexListNode* CreateNode(int nValue)

{

    ComplexListNode* pNode = new ComplexListNode();

    

    pNode->m_nValue = nValue;

    pNode->m_pNext = NULL;

    pNode->m_pSibling = NULL;

    return pNode;

}

void BuildNodes(ComplexListNode* pNode, ComplexListNode* pNext, ComplexListNode* pSibling)

{

    if(pNode != NULL)

    {

        pNode->m_pNext = pNext;

        pNode->m_pSibling = pSibling;

    }

}

void PrintList(ComplexListNode* pHead)

{

    ComplexListNode* pNode = pHead;

    while(pNode != NULL)

    {

        printf("The value of this node is: %d.\n", pNode->m_nValue);

        if(pNode->m_pSibling != NULL)

            printf("The value of its sibling is: %d.\n", pNode->m_pSibling->m_nValue);

        else

            printf("This node does not have a sibling.\n");

        printf("\n");

        pNode = pNode->m_pNext;

    }

}

int main()

{

    ComplexListNode* pNode1 = CreateNode(1);

    ComplexListNode* pNode2 = CreateNode(2);

    ComplexListNode* pNode3 = CreateNode(3);

    ComplexListNode* pNode4 = CreateNode(4);

    ComplexListNode* pNode5 = CreateNode(5);

    BuildNodes(pNode1, pNode2, pNode3);

    BuildNodes(pNode2, pNode3, pNode5);

    BuildNodes(pNode3, pNode4, NULL);

    BuildNodes(pNode4, pNode5, pNode2);
PrintList(pNode1);
return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: