#include<iostream>
using namespace std;
struct Node{
int x;
Node *next;
};
typedef struct Node * PtrToNode;
typedef PtrToNode List;
typedef PtrToNode Position;
void Print(List L)
{
Position P = L;
while (P != NULL)
{
cout << P->x << " ";
P = P->next;
}
}
List InsertBeg(List L, int x){
Node *tmp = new Node;
tmp->x = x;
if (L == NULL)
{
tmp->next = NULL;
L = tmp;
}
else
{
tmp->next = L;
L = tmp;
}
return L;
}
Position FindLast(List L){
Position P = L;
if (L != NULL)
while (P->next != NULL)
P = P->next;
return P;
}
List deleteFirst(List L) {
Position P = L;
L = L->next;
P->next = NULL;
delete P;
return L;
}
Position FindX(List L, int x){
Position P = L;
while (P != NULL && P->x != x){
P = P->next;
}
return P;
}
Position FindPrevPos(List L, Position P){
Position prev = L;
if (L != NULL)
if (P != NULL && (P != L))
while (prev->next != P)
prev = prev->next;
return prev;
}
List deleteLast(List L) {
Position last = FindLast(L);
Position prev = FindPrevPos(L, last);
prev->next = NULL;
delete last;
return L;
}
List deleteX(List L, int x)
{
Position P = FindX(L, x);
if (P == L)
L = deleteFirst(L);
else if (P->next == NULL)
L = deleteLast(L);
else {
Position prev;
prev = FindPrevPos(L, P);
prev->next = P->next;
P->next = NULL;
delete P;
}
return L;
}
List deleteeven(List L){
Position P = L;
while (P != NULL)
{
if (P->x % 2 == 0)
P = deleteX(L, P->x);
P = P->next;
}
return L;
}
int main()
{
List L = NULL;
L = InsertBeg(L, 4);
L = InsertBeg(L, 8);
L = InsertBeg(L, 1);
L = InsertBeg(L, 21);
Print(L);
L = deleteeven(L);
cout << "After deleting the even numbers";
Print(L);
cin.get();
cin.get();
return 0;
}
짝수가 아닌 배당률을 삭제해야합니다. 이건 짝수를위한 것이지만 수정하고 배당률을 삭제하도록 만들어야합니다. 시도 중이며 배당률을 삭제하도록 수정할 수 없습니다! 이것을 수정하고 배당률을 삭제하도록 만들 수 있다면 대단히 감사하겠습니다.
감사!
이 시도.
List RemoveOdd(List L) {
Position* prev = &L;
Position cur = L;
while (cur) {
if (cur->x % 2) {
*prev = cur->next;
delete cur;
cur = *prev;
} else {
prev = &cur->next;
cur = cur->next;
}
}
return L;
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다