#include <stdio.h>
# include<stdlib.h>
#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<n;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--]);
}
datatype deleted(linklist head)
{
datatype temp;
linklist p;
p=head->next;
temp=(p->data);
head->next=p->next;
free(p);
return (temp);
}
void invertedlist(linklist head,int n)
{
seqstack s;
int i,j,temp;
s.top=-1;
for(i=0;i<n;i++)
{
temp=deleted(head);
push(&s,temp);
}
for(i=0;i<n;i++)
{
temp=pop(&s);
printf("%5d",temp);
if(!((i+1)%10))
printf("\n");
}
printf("\n");
}
main()
{
linklist head;
int n;
printf("Please input the value of n:\n");
scanf("%d",&n);
head=creatlist(n);
print(head,n);
printf("\n");
printf("After inverting,the records of the chain are:\n");
invertedlist(head,n);
system("pause");
return 0;
}
运行结果:
Please input the value of n:
10
Please input the records of the chain!
-5 8 6 -1 0 1 2 -5 6 7
Now these 10 records are:
-5 8 6 -1 0 1 2 -5 6 7
After inverting,the records of the chain are:
7 6 -5 2 1 0 -1 6 8 -5
请按任意键继续. . .
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |