#ifndef CURSOR_H_INCLUDED
#define CURSOR_H_INCLUDED
//游标的共享?
struct c
{
char used;
int data;
int next;
};
typedef struct c cursor;
void init_cursor(cursor a[],int n)
{
int i;
for (i=0;i<n;i++)
{a[i].used=0;
a[i].next=-1;}
}
void insert_cursor(cursor a[],int n,int p,int x)
{
int i,j;
for (i=p;a[i].next!=-1;i = a[i].next) ;
for (j=n-1;j>0&&a[j].used==1;j--) ;
//printf("i=%d j=%d\n",i,j);
if (j==0)
printf("no more space\n");
else
{
a[j].data = x;
a[j].next=-1;
a[j].used=1;
a[i].next = j;
}
}
void print_cursor(cursor a[],int p)
{
int i;
for (i=p;a[i].next!=-1;i=a[i].next)
{
printf("%d\t",a[a[i].next].data);
}
printf("\n");
}
int new_list(cursor a[],int n)
{
int i;
for(i=0;i<n&&a[i].used==1;i++);
a[i].used=1;
if(i==n)
{printf("full\n");
return -1;
}
return i;
}
#define CURSOR_H_INCLUDED
//游标的共享?
struct c
{
char used;
int data;
int next;
};
typedef struct c cursor;
void init_cursor(cursor a[],int n)
{
int i;
for (i=0;i<n;i++)
{a[i].used=0;
a[i].next=-1;}
}
void insert_cursor(cursor a[],int n,int p,int x)
{
int i,j;
for (i=p;a[i].next!=-1;i = a[i].next) ;
for (j=n-1;j>0&&a[j].used==1;j--) ;
//printf("i=%d j=%d\n",i,j);
if (j==0)
printf("no more space\n");
else
{
a[j].data = x;
a[j].next=-1;
a[j].used=1;
a[i].next = j;
}
}
void print_cursor(cursor a[],int p)
{
int i;
for (i=p;a[i].next!=-1;i=a[i].next)
{
printf("%d\t",a[a[i].next].data);
}
printf("\n");
}
int new_list(cursor a[],int n)
{
int i;
for(i=0;i<n&&a[i].used==1;i++);
a[i].used=1;
if(i==n)
{printf("full\n");
return -1;
}
return i;
}
#endif // CURSOR_H_INCLUDED
#include <stdio.h>
#include <stdlib.h>
#include "cursor.h"
int main()
{
int i,x;
cursor a[10];
init_cursor(a,10);
int p=new_list(a,10);
while (p>-1)
{
for (i=0;i<3;i++)
{
scanf("%d",&x);
insert_cursor(a,10,p,x);
printf("链表%d:\n",p);
print_cursor(a,p);
}
p=new_list(a,10);
}
return 0;
}