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 = ¤t->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 = ¤t->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 = ¤t->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;
}