1,问题描述:
要求实现用户输入一个数使得26个字母的排列发生变化,例如用户输入3,使得结果为:DEFHIJKLMNOPQRSTUVWXYZABC,同时需要支持负数,使得输入-3时,结果为:
XYZABCDEFGHIJKLMNOPQRSTUVW。很明显这是一个双向循环链表的问题,可以实现双向移动位置。
2,思路分析
首先定义一个结构体:
typedef char ElemType;
typedef int Status;
typedef struct DualNode
{
ElemType data;
struct DualNode *prior; //前驱结点
struct DualNode *next; //后继结点
}DualNode, *DuLinkList;
其次,生成一个L头结点,即为*L,将p结点赋值为*L,再新建一个结点q,给其分配内存,要判定是否分配成功。