定义一个双向链表,并且设计一个函数,查找并且插入元素,保持链表有序排列

定义一个双向链表,并且设计一个函数,查找并且插入元素,保持链表有序排列

 STATUS insert_data_into_double_link(DOUBLE_LINK_NODE** ppDLinkNode, int data)  
{  
    DOUBLE_LINK_NODE* pNode;  
    DOUBLE_LINK_NODE* pIndex; 
    if(NULL == ppDLinkNode)  
        return FALSE; 
    if(NULL == *ppDLinkNode){  
        pNode = create_double_link_node(data);  
        assert(NULL != pNode);  
        *ppDLinkNode = pNode;  
        (*ppDLinkNode)->prev = (*ppDLinkNode)->next = NULL;  
        return TRUE;  
    } 
    if(NULL != find_data_in_double_link(*ppDLinkNode, data))  
        return FALSE; 
    pNode = create_double_link_node(data);  
    assert(NULL != pNode); 
    pIndex = *ppDLinkNode;  
    while(NULL != pIndex->next)  
        pIndex = pIndex->next; 
    pNode->prev = pIndex;  
    pNode->next = pIndex->next;  
    pIndex->next = pNode;  
    return TRUE;  
}  

具体请参考:c++双向链表操作示例(创建双向链、双向链表中查找数据、插入数据等)

http://www.open-open.com/lib/view/open1410699307711.html