1( 20分 )
回文序列是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符串是否为回文序列。
int IsHuiwen( char *t)
{
SeqStack s;
int i , len;
char temp;
len=strlen(t);
for ( i=0; i<len; i++)
Push( &s, t[i]);
for ( j=0; j<len; j++)
{
temp=Pop (&s);
if( temp!=t[j])
return 0 ;
}
return 1 ;
}
2( 30分 )
假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点,试编写相应的初始化、入队以及出队算法。
typedef struct Node
{
char data;
struct Node *next;
} QNode;
typedef struct
{
QNode *rear;
} LinkQueue;
int initQueue(LinkQueue *Q)
{
Q->rear=(QNode *)malloc(sizeof(QNode));
if(Q->rear==NULL) return 0;
Q->rear->next=Q->rear;
return 1;
}
int EnQueue(LinkQueue *Q, char e)
{
QNode *p,*head;
p=(QNode *)malloc(sizeof(QNode));
if(p==NULL) return 0;
head=Q->rear->next;
p->data=e;
p->next=head;
Q->rear->next=p;
Q->rear=p;
return 1;
}
int DeQueue(LinkQueue *Q, char *e)
{ QNode * temp;
if(Q->rear->next==Q->rear)
return 0;
else
{ head=Q->rear->next;
temp=head->next;
*e=temp->data;
if(head->next==Q->rear)
head->next= head;
else head->next=temp->next;
free(temp);
return 1;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)