データ構造——チェーンが逆さまです.
チェーンが逆さまになる
プログラミング:率先して一つのチェーンを作って(後挿入法で少なくとも10個の結点以上を作ります)、元のチェーンに基づいて、このシングルチェーンを逆さまにすることを要求します.
直接使用してはいけません.
リスト
プログラミング
プログラミング:率先して一つのチェーンを作って(後挿入法で少なくとも10個の結点以上を作ります)、元のチェーンに基づいて、このシングルチェーンを逆さまにすることを要求します.
直接使用してはいけません.
リスト
プログラミング
#include
using namespace std;
typedef struct Node* Position;
typedef Position List;
struct Node {
int Data;
List Next;
};
List CreatList(){
List P = (List)malloc(sizeof(struct Node));
P->Data = 0;
P->Next = NULL;
return P;
}
void AddElement(List head,int X){
List T = head;
while (T->Next != NULL){
T = T->Next;
}
List P = (List)malloc(sizeof(struct Node));
P->Data = X;
P->Next = NULL;
T->Next = P;
return ;
}
void ShowList(List head){
List T = head;
while (T->Next != NULL){
T = T->Next;
cout << T->Data << endl;
}
return ;
}
// ,
// 10 ,
// , NULL OK
// 3 ,
void ReverseList(List head){
List T = head;
List L = T->Next;
List M = L->Next;
List R = M->Next;
L->Next = NULL;
while (R->Next != NULL){
M->Next = L;
L = M;
M = R;
R = R->Next;
}
R->Next = M;
M->Next = L;
T->Next = R;
return ;
}
int main()
{
List Head = CreatList();
for (int i = 1;i <= 20;i ++){
AddElement(Head,i);
}
ShowList(Head);
cout << "*******" << endl;
ReverseList(Head);
ShowList(Head);
}