判断单向链表是否回文

xiaoxiao2021-02-28  4

List.h #include<iostream> using namespace std; #define Elemtype char typedef struct node { Elemtype date; struct node* next; }Node; typedef struct node* LinkList; void CreateListHead(LinkList *L,char *p); int CompareList(LinkList L);

List.cpp

#include"List.h" #include<iostream> using namespace std; void CreateListHead(LinkList *L,char *t) { LinkList p,r; *L = (LinkList)malloc(sizeof(Node)); r = *L; while (*t != 0) { p = (Node*)malloc(sizeof(Node)); p->date = *t; r->next = p; r = p; t++; } r->next = NULL; } int CompareList(LinkList L) { Node*p1 = L->next; Node*p2 = L->next; while (p2 != NULL) { p1 = p1->next; p2 = p2->next; if ( p2 == NULL) break; p2 = p2->next; } Node* pre = NULL; Node* head = p1; Node* next = p1->next; while ( next != NULL) { head->next = pre; pre = head; head = next; next = next->next; } head->next = pre; p1 = head; p2 = L->next; while(p1 != NULL) { if(p1->date != p2->date) return -1; p1 = p1->next; p2 = p2->next; } return 0; }

ListMain.cpp #include"List.h" #include<iostream> using namespace std; void main() { LinkList L; char p[20] = "asddsa"; CreateListHead(&L,p); int boolenth = CompareList(L); if (boolenth == 0) cout<<"该字符串为回文链表"<<endl; else cout<<"该字符串不是回文链表"<<endl; }

转载请注明原文地址: https://www.6miu.com/read-200122.html

最新回复(0)