스 택 구 조 를 통 해 단일 체인 표를 역 치 합 니 다.
2095 단어 데이터 구조
입 출력 샘플: 1 그룹
#1
5 //
1 2 3 4 5 //
5 4 3 2 1 // ,
#include
#include
#define max 100
typedef struct node
{
char data;
struct node *next;
} Lnode,*Linklist;
typedef struct sta
{
char data[max];
int top;
} stack;
stack* init()
{
stack *s=(stack*)malloc(sizeof(stack));
s->top=-1;
return s;
}
int empty(stack *s)
{
if(s->top==-1)
return 1;
else return 0;
}
Linklist creat(int num)//
{
Lnode *s,*r;
int x;int cout=0;
Linklist L;
L=(Lnode *)malloc(sizeof(Lnode));//
L->next=NULL;
r=L;
while(coutdata=x;
s->next=NULL;
r->next=s;
r=s;
cout++;
}
return L;
}
void push(stack* s,Lnode *x)//
{
if(s->top==max-1) return;
else
{
s->top++;
s->data[s->top]=x->data;
}
}
//void pop(stack* s,Lnode **x)
//{
//
// if(empty(s)) return;
// else
// {
// (*x)->data=s->data[s->top];
// s->top--;
// }
//}
int pop(stack* s,int *x)//
{
if(empty(s)) return 0;
else
{
*x=s->data[s->top];
s->top--;
}
return *x;
}
void result(Linklist L)
{
Lnode *p,*l;int x;
stack *s=init();
p=L->next;//
l=L;
L->next=NULL;
while(p)//
{
push(s,p);
p=p->next;
}
while(!empty(s))
{
x=pop(s,&x);
// l->next=q;//
// l=q;// ,
printf("%d ",x);
}
// l->next=NULL;
// return L;
}
int main()
{
Linklist L;
int num;
scanf("%d",&num);//
L=creat(num);
result(L);
// while(L)
// {
// L=L->next;
// printf("%c ",L->data);
// }
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.