C 链表前n个是不是中心对称就像 arrfrra

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010095372/article/details/83381080

前面相关操作在这呢,这个函数依托于此

//结构体
typedef struct Node {
    ElementType data;
    struct Node * next;
} LNode, * LinkNode;

//链表前n个是不是中心对称
Status isSymmertricLink(LinkNode L, int n){
    //本来要一个数组是最好的,无奈C语言不支持这个变量建数组,得用顺序表可以代替这用
    //也就是不用靠next找下个,得需要一个连续存储才行
    LinkNode p = L->next;
    ElementType *arr = (ElementType *)malloc(sizeof(ElementType)*n);
    int i;
    for (i = 0; i < n; i++) {
        if(p){
            *(arr+i) = p->data;
            p = p->next;
        }else
        {
            return ERR;
        }
    }
    //看看到底是不是对称,一个不是也不行
    for (i = 0; i < n/2; i++) {
        if(*(arr+i) != *(arr+n-i-1)){
            return ERR;
        }
    }
    
    return OK;
}

猜你喜欢

转载自blog.csdn.net/u010095372/article/details/83381080