华剑缘
一切都在这个过程中获得,将那些目标埋藏于心中
posts - 19,comments - 20,trackbacks - 0
#include  " stdio.h "
#include 
" stdlib.h "
typedef 
struct
{
 
int  number;
 
int  dicper;
}
ElemType;
typedef 
struct  node
{
 ElemType data;
 
struct  node  * next;
}
Node, * LinkList;
void  Initiatte(LinkList  & L)
{
 
if ((L = (LinkList)malloc( sizeof (Node))) == NULL)exit( 1 );
 L
-> next = L;
}

int  Insert(LinkList  & L, int  i,ElemType x)
{
 LinkList q,p;
 p
= L -> next;
 
int  j = 1 ;
 
while (p != &&  j < i - 1 )
 
{
  p
= p -> next;
  j
++ ;
 }

 
if (j != i - 1   &&  i != 1 )
 
{
  printf(
" 插入位置参数错! " );
  
return   0 ;
 }

 q
= (LinkList)malloc( sizeof (Node));
 
if ( ! q)exit( 1 );
 q
-> data = x;
 q
-> next = p -> next;
 p
-> next = q;
 
return   1 ;
}

int  IsNotEmpty(LinkList L)
{
 
if (L -> next == L) return   0 ;
 
else   return   1 ;
}

int  Delete(LinkList  & p)
{
 LinkList q;
 q
= p -> next;
 p
-> next = p -> next -> next;
 free(q);
 
return   1 ;
}

void  output(LinkList  & L, int  m)
{
 LinkList pre,q;
 pre
= L;
q
= L -> next;
 
while (IsNotEmpty(L) == 1 )
 
{
  
for ( int  i = 1 ;i < m;i ++ )
  
{
   pre;
   q
= q -> next;
   
if (q == L)
   
{
    pre
= q;
   q
= q -> next;
   }

  }

printf(
" %d** " ,q -> data.number);
 m
= q -> data.dicper;
 q
= q -> next;
 
if (q == L)q = q -> next;
 Delete(pre);
 }

}

int  main()
{
 
int  n;
 printf(
" 请输入人数的值:\n " );
 scanf(
" %d " , & n);
 ElemType 
* P;
 LinkList L;
 Initiatte(L);
 
int  i,m;
=   new  ElemType [n];
 
for ( i = 0 ;i < n;i ++ )
 
{
 P[i].number
= i + 1 ;
  printf(
" 第%d个人输入密码 " ,i + 1 );
  printf(
" \n " );
  scanf(
" %d " , & P[i].dicper);
 }

  
for (i = 1 ;i <= n;i ++ )
  Insert(L,i,P[i
- 1 ]);
 printf(
" 对m的数值进行初始化: " );
 scanf(
" %d " , & m);
 printf(
" 结果输出: " );
 output(L,m);
 delete [] P;
 printf(
" \n " );
 
return   0 ;
}


12
posted on 2006-12-18 22:53 华剑缘 阅读(226) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理