双向循环链表实现
#include <stdio.h> #include <stdlib.h> #define OK 1 #define ERROR 0 //可以方便的改变元素类型 typedef char ElemType; typedef int Status; typedef struct node{ int data; struct node * prior; struct node * next; }node, *LinkList; Status DoubleLinkInit(LinkList *L) { node *p, *q; int i; if(!(*L)) return ERROR; (*L)->next=(*L)->prior=NULL; p = (*L); //p永远指向终端结点,类似尾插法 for (i = 0; i < 26;i++) { q= (node *)malloc(sizeof(node)); if(!q) return ERROR; q->data='A'+i; p->next=q; q->prior = p; p = q; } p->next = (*L)->next; (*L)->next->prior = p; (*L) = (*L)->next; return OK; } void Caesar(LinkList *L,int i) { if(i>0) { do { (*L)=(*L)->next; } while (--i); } if(i<0) { do { (*L) = (*L)->prior; } while (++i); } for (int j = 0; j < 26;j++) { printf("%c", (*L)->data); (*L) = (*L)->next; } } int main() { // LinkList L;3 int n; LinkList *L = (LinkList)malloc(sizeof(node)); /* 产生头结点,并使L指向此头结点 */ DoubleLinkInit(&L); printf("请输入一个整数:"); scanf("%d", &n); Caesar(&L,n); printf("wdqwazv"); // printf("%c", L->data); // for (int j = 0; j < 26; j++) // { // printf("%c", (*L)->data); // (*L) = (*L)->next; // printf("fsd"); // } }
问题:for循环打印结果放到main函数中不显示任何结果????
没解决