求《数据结构》课程设计的源代码,高手进!

来源:百度知道 编辑:UC知道 时间:2024/05/23 01:50:46
下面两个任选一个,能在 TC 下执行

1 假设称正读和反读都相同的字符序列为“回文”,例如,‘abba’和‘abcba’是回文,‘abcde’和‘ababab’则不是回文。试写一个算法判别读入的一个以‘@’为结束符的字符序列是否是“回文”。

2 约瑟夫问题:设有n个人围坐一圈,现从指定的第1个人开始报数,数到第m个人出列,然后从出列的下一个人重新开始报数,数到第m个人又出列,…,如此重复,直到所有人全部出列为止。选用单链表作为存储结构,输出出列人的编号。

也许分数有点少,但会有追加分数,希望各位大侠帮帮小妹,谢谢!

这是第二题,第一题因该是要用栈吧
#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
int data;
struct node *next;
}Lnode;
Lnode *create(int n)
{
int i;
Lnode *h,*p,*r=(Lnode*)malloc(sizeof(Lnode));
r->data=n;h=r;
for(i=n-1;i>0;i--)
{
p=(Lnode*)malloc(sizeof(Lnode));
p->data=i;
p->next=h;
h=p;
}
r->next=h; return h;
}
void jeseph(Lnode *p,int m)
{
Lnode *q; int j=0;
printf("outqueue order:");

do{
j++;
if(j==m-1)
{
q=p->next;
p->next=q->next;
printf("%d ",q->data);
j=0;free(q);
}
p=p->next;
}while(p->next!=p);
printf("%d\n",p->data);
free(p);
}
void main()