最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
利用栈来实现单链表的逆序
时间:2022-07-02 10:56:39 编辑:袖梨 来源:一聚教程网
#include
# include
#define stacksize 100
typedef int datatype;
typedef struct
{
datatype data[stacksize];
int top;
}seqstack;
typedef struct node{
datatype data;
struct node *next;
}listnode;
typedef listnode *linklist;
linklist head;
linklist p;
int count;
linklist creatlist(int n)
{
linklist head;
listnode *p1,*p2;
int i;
head=(linklist)malloc(sizeof(listnode));
head->next=NULL;
p2=head;
printf("Please input the records of the chain!n");
for(i=0;i
p1=(linklist)malloc(sizeof(listnode));
scanf("%d",&p1->data);
p1->next=p2->next;
p2->next=p1;
p2=p1;
}
return (head);
}
void print(linklist head,int n)
{
if(head==NULL)
printf("list null!n");
printf("Now these %d records are:n",n);
p=head->next;
printf("%4d",p->data);
count=1;
while(p->next!=NULL)
{
count++;
p=p->next;
printf("%4d",p->data);
if(!(count%10))
printf("n");
}
}
datatype push(seqstack *s,int x)
{
if(s->top==stacksize-1)
printf("The stack is overflow!n");
else
s->data[++s->top]=x;
}
datatype pop(seqstack *s)
{
if(s->top==-1)
printf("the stack is empty!n");
else
return (s->data[s->top--]);
}
相关文章