連結串列插入、逆序、遍歷
阿新 • • 發佈:2019-02-14
//單鏈表的建立,把‘a’-‘z’26個字母插入到連結串列中,並且倒序,還要列印
#include <stdio.h> #include <stdlib.h> int c= 0; typedef struct node { char data; struct node *next; }Node; typedef struct node *Linklist; int Reverse(Linklist L) { Linklist p,q,r; if(L->next == NULL || L == NULL) { return 1; } p = L->next; q = p->next; p->next = NULL; while(q != NULL) { r = q->next; q->next = p; p = q; q = r; } L->next = p; return 0; } void ListInit(Linklist *L) { (*L) = (Linklist)malloc(sizeof(Node)); if((*L) == NULL) { exit(1); } (*L)->next =NULL; } void ListInsert(Linklist *L,char e) { Linklist n = (Linklist)malloc(sizeof(Node)); Linklist p = *L; n->data = e; n->next = p->next; p->next = n; } void Traverse(Linklist L) { Linklist p = L->next; while(p != NULL) { printf("%c ",p->data); p = p->next; } printf("\n"); } int main() { int i = 0,e = 97; Linklist L; ListInit(&L); for(i = 0;i < 26;i++) { ListInsert(&L,e); e++; }
Traverse(L);
Reverse(L);
Traverse(L);
return 0;
}