C语言 -字符串加密问题 循环链表

2024-12-15 19:45:52
推荐回答(2个)
回答1:

/*****建立链表****/
head=(struct node *)malloc(sizeof(struct node)); //head永远指向“头”(其实是一个循环链表,头只是个标志)
p=head; //p表示成环前的“队尾”
for(i=0;i<(num-1);i++) //生成和字符串等长的链表
{
p->x=NULL; //暂时数据为空
p->flag=0; //flag = 0表示数据未写入,=1表示数据已经写入该节点
p->next=(struct node *)malloc(sizeof(struct node)); //下一节点空间申请
p=p->next; //指向“队尾”
}
p->x=NULL;
p->flag=0;
p->next=head; //把链表做成环

/****加密实现***/
p=head; //从“头开始”
for(i=0;i{
for(j=1;j<=key;) //按密钥计数
{
p=p->next;
if(p->flag==0) j++; //flag=0才是没有被放入数据的节点
}
p->x=chr[i]; //按密钥要求数到该位置,则放入字符
p->flag=1; //标记该节点已写入数据,补再参加密钥计数
}

回答2:

哇。。。