データ構造——チェーンが逆さまです.

1534 ワード

チェーンが逆さまになる
 
プログラミング:率先して一つのチェーンを作って(後挿入法で少なくとも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);
}