判断是否为中心对称
int dc(LinkList L,int n)
{
int i;
char s[n/2];
LNode *p = L->next;
for(i = 0;i<n/2;i++)
{
s[i] = p->data;
p=p->next;
}
i--;
if(n%2==1)
{
p = p->next;
}
while(p!=NULL && s[i]==p->data)
{
i--;
p=p->next;
}
if(i==-1)
return 1;
else
return 0;
}
两栈共享空间的基本操作
typedef struct {
int stack[maxsize];
int top[2];
}stk;
stk s;
int push(int i,int x)
{
if(i<0||i>1)
return ;
if(s.top[1] - s.top[0] = 1)
{
printf("栈满\n");
return 0;
}
switch(i)
{
case 0:
s.top[0]++; s.stack[s.top[0]] = x;
return 1;
break;
case 1:
s.top[1]--; s.stack[s.top[1]] = x;
return 1;
}
}
int pop(int i)
{
if(i<0||i>1)
return ;
switch(i)
{
case 0:
if(s.top[0] == -1)
{
printf("栈空");
return -1;
}
else{
s.top[0]--;
return s.stack[s.top[0]];
}
break;
case 1:
if(s.top[1] == -1)
{
printf("栈空");
return -1;
}
else{
s.top[1]++;
return s.stack[s.top[1]];
}
break;
}
}