C++实现链表

struct node
{
node* p;
int n;
};

//在末端插入
int link_insert_back( node** plink, int value )
{
int nret = 0
node* current;
node* newnode;

while( (current = *plink) != NULL )
{
plink = &current->p;
}

newnode = new node;
if(newnode == NULL)
return nret;

newnode->n = value;
newnode->p = current;
*plink = newnode;

nret = 1;
return nret;
}


//按顺序插入列表
int link_insert( node** plink, int value )
{
int nret = 0
node* current;
node* newnode;

while( (current = *plink) != NULL && current->n < value )
{
plink = &current->p;
}

newnode = new node;
if(newnode == NULL)
return nret;

newnode->n = value;
newnode->p = current;
*plink = newnode;

nret = 1;
return nret;
}

//删除指定节点
int link_delete(node** plink, int value)
{
int nret = 0;
node* current;

while((current = *plink) != NULL )
{
if ( current->n == value )
{
plink = &cuurent->p;
delete current; //释放空间
nret = 1;
}
else
{
plink = &current->p;
}
}

return nret;
}

int link_delete_all(node** plink)
{
int nret = 1;
node* current;

while((current = *plink) != NULL )
{
plink = &cuurent->p;
delete current; //释放空间
}

return nret;
}

posted @ 2017-02-08 17:14  品山  阅读(111)  评论(0编辑  收藏  举报