顺序表基本代码:

#include  < stdio.h >
#define  MAXSIZE 100
#define  non    -1
#define  true   -2
#define  false  -3

typedef 
struct  
{
    
int data[MAXSIZE];
    
int length;
}
seqList;
        
/*****************************
Function:Initlize sequence list
Param List: void
Return Type: seqList
****************************
*/

seqList SeqListInit()
{
        
int i;
        seqList L;
        
for(i = 0; i < MAXSIZE; i ++)
        
/*Initlize data field*/
              L.data[i] 
= 0;
        
/*The length of data is empty*/
        L.length 
= 0;
        
return L;
}
  
         
/****************************
Function:Delet sequence list
Param List: seqList L
Return Type: void
****************************
*/
        
void  ListClear(seqList L)
{
     
int i;
     
for(i = 0; i < L.length; i ++)
     
{
          L.data[i] 
= 0;           
     }

     L.length 
= 0;
}

     
/******************************
Function: Check sequence list 
          whether is empty
Param List: seqList L
Return Type: int
******************************
*/

int  ListIsEmpty(seqList L)
{
      
if(L.length == 0)
          
return true;
      
else
          
return false;   
}


/********************************
Function: Identify the length of
          sequence list          
Param List: seqList L
Return Type: int
*********************************
*/

int  ListLength(seqList L)
{
    
return L.length;    
}

 
/**********************************
Function: Check sequence list whether
          is full
Param List: seqList L
Return Type: int
*********************************
*/
 
int  ListIsFull(seqList L)
{
      
if(L.length == MAXSIZE)
           
return true;
      
else 
           
return false
        
}


/***********************************
Function: Traverse whole list
Param List: seqList L
Return Type: void
***********************************
*/

void  ListTraverse(seqList L)
{
     
if(ListIsEmpty(L) == true)
     
{
         printf(
"List is empty");
         getchar();
         
return;
     }

     
else
     
{
         
int i;
         
for(i = 0; i < L.length; i ++)
                L.data[i];    
     }

     
}


/***********************************
Function: Locate the data in 
          sequence list
Param List: seqList L, int x
Return Type: int
***********************************
*/
            
int  ListLocate(seqList L,  int  x)
{
     
if(ListIsEmpty(L) == true)
     
{
         printf(
"List is empty ");
         getchar();
         
return false;
     }
 
     
else
     
{
         
int i;
         
for(i = 0; i < L.length; i ++)
         
{
              
if(L.data[i] == x)
                  
return i;   /*return Located number*/   
         }

         
if(i >= L.length)
              
return non;      /*Non data is satisfied*/
     }

}


/***********************************
Function: Insert a data in sequence 
          list into  seqList L
Param List: seqList L, int x
Return Type: void
***********************************
*/

void  ListInsert(seqList L,  int  locatedX, int  newData)
{
     
if(ListIsEmpty(L) == true)
     
{
         printf(
"List is empty ");
         getchar();
         
return false;
     }
 
     
else
     
{
         
int i;
         
for(i = L.length - 1; i >= locatedX - 1; i --)
         
{
               L.data[i 
+ 1= L.data[i];
         }

         L.data[locatedX] 
= newData;
         L.length 
++;
     }

}


/***********************************
Function: Delete data[locatedX -1]
          in sequence list L
Param List: seqList L, int i
Return Type: void
***********************************
*/

void  ListDelete(seqList L,  int  locatedX)
{
     
if(ListIsEmpty(L) == true)
     
{
         printf(
"List is empty ");
         getchar();
         
return false;
     }
 
     
else
     
{
         
int i;
         
for(i = locatedX -1; i < L.length - 1; i++)
         
{
               L.data[i] 
= L.data[i + 1];
         }

         L.length 
--;
     }
    
}


/***********************************
Function: Locate the prior data
          of current data in sequence
          list
Param List: seqList L, int i
Return Type: int
***********************************
*/

int  ListPrior(seqList L,  int  data)
{
     
if(ListIsEmpty(L) == true)
     
{
         printf(
"List is empty ");
         getchar();
         
return false;
     }
 
     
else
     
{
         
int i;
         
for(i = 0; i < L.length; i++)
         
{
             
if(L.data[i] == data)
                 
return L.data[i - 1];
         }

         
if(i >= L.length)
         
{
              printf(
"Can not find %d in sequence list",data);
              getchar();
              
return non;
         }

     }

}

/***********************************
Function: Locate the next data of
          current data in sequence list
Param List: seqList L, int i
Return Type: int
**********************************
*/

int  ListNext(seqList L,  int  data)
{
    
if(ListIsEmpty(L) == true)
     
{
         printf(
"List is empty ");
         getchar();
         
return false;
     }
 
     
else
     
{
         
int i;
         
for(i = 0; i < L.length; i++)
         
{
             
if(L.data[i] == data)
                 
return L.data[i + 1];
         }

         
if(i >= L.length)
         
{
              printf(
"Can not find %d in sequence list",data);
              getchar();
              
return non;
         }

     }

}


/***********************************
Function: Painting menu of operation
          of sequence list
Param List: void
Return Type: void
**********************************
*/

void  ListOperationMenu( void )
{
     printf(
" ");
     printf(
"1. "); 
     printf(
"2. ");
     printf(
"3. ");
     printf(
"4. ");
     printf(
"5. ");    
     
switch(getch())
     
{
         
case '1':
              
break;
         
case '2':
              
break;
         
case '3':
              
break;
         
case '4':
              
break;
         
case '5':
              
break;
     }

}

/***********************************
Function: Painting main menu of Application
Param List: void
Return Type: void
**********************************
*/

void  MainMenuPaint( void )
{
    printf(
" 1.Initlize a sequence list "); 
    printf(
" 0.Quit");
    
switch(getch())
    
{
        
case '1':
             ListOperationMenu();
             
break;
        
case '0':
             printf(
" Press any key to quit");
             getch();
             exit(
0);
             
break;        
    }

}


/************************************
Function: Main
Param List: void
Return Type: int
*************************************
*/

int  main()
{
    
while(1)
    
{
            MainMenuPaint();
    }
   
}

 

数据结构实验顺序表代码,大部分function实现,未作main调用处理。

有时间继续整理。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值