如何使用节点查找和删除学生
How to find and drop a student with nodes
我无法弄清楚如何使用他们也绑定的节点删除我的学生,因为出于某种原因我无法从我的列表中间删除一个节点。我还没弄明白。任何想法将不胜感激。这就是我认为可行的方法,但它没有用
Void drop_student ( double_linkedlist_t* listPtr)
{
Node_t* CurPtr;
Node_t* nodePtr;
CurPtr = listPtr->headPtr;
While ( nodePtr != CurPtr )
{
If ( nodePtr == CurPtr )
{
//found it at beginning
CurPtr = listPtr->headPtr->nextPtr
}
}
}
或者类似的东西。我只需要输入一个学生 ID,然后它应该找到它绑定的节点并将其从我的列表中删除。谢谢你的帮助!
试着去理解它。如果您遇到任何问题,请回复。
我假设该节点存在于链表中。
void drop_student ( double_linkedlist_t* listPtr){
Node_t* CurPtr;
Node_t* nodePtr;
CurPtr = listPtr->headPtr;
if ( nodePtr == CurPtr ) {
//found it at beginning
listPtr->headPtr = listPtr->headPtr->nextPtr;
return;
}
//if not at begining search for the node through iteration
While ( nodePtr != CurPtr->nextPtr ){
CurPtr = CurPtr->nextPtr;
}
//if it is end node
if(nodePtr -> next = NULL){
CurPtr->nextPtr=NULL;
return;
}
//if in middle
nodePtr -> nextPtr -> previousPtr = curPtr;
curPtr -> nextPtr = nodePtr -> nextPtr;
}
为了更好地理解,请按照 this link 中的数字进行操作。
我无法弄清楚如何使用他们也绑定的节点删除我的学生,因为出于某种原因我无法从我的列表中间删除一个节点。我还没弄明白。任何想法将不胜感激。这就是我认为可行的方法,但它没有用
Void drop_student ( double_linkedlist_t* listPtr)
{
Node_t* CurPtr;
Node_t* nodePtr;
CurPtr = listPtr->headPtr;
While ( nodePtr != CurPtr )
{
If ( nodePtr == CurPtr )
{
//found it at beginning
CurPtr = listPtr->headPtr->nextPtr
}
}
}
或者类似的东西。我只需要输入一个学生 ID,然后它应该找到它绑定的节点并将其从我的列表中删除。谢谢你的帮助!
试着去理解它。如果您遇到任何问题,请回复。
我假设该节点存在于链表中。
void drop_student ( double_linkedlist_t* listPtr){
Node_t* CurPtr;
Node_t* nodePtr;
CurPtr = listPtr->headPtr;
if ( nodePtr == CurPtr ) {
//found it at beginning
listPtr->headPtr = listPtr->headPtr->nextPtr;
return;
}
//if not at begining search for the node through iteration
While ( nodePtr != CurPtr->nextPtr ){
CurPtr = CurPtr->nextPtr;
}
//if it is end node
if(nodePtr -> next = NULL){
CurPtr->nextPtr=NULL;
return;
}
//if in middle
nodePtr -> nextPtr -> previousPtr = curPtr;
curPtr -> nextPtr = nodePtr -> nextPtr;
}
为了更好地理解,请按照 this link 中的数字进行操作。