1. 程式人生 > >線性表的簡單操作

線性表的簡單操作

#include<stdio.h> #include<stdlib.h> #define MAX 50 typedef struct{     char data[MAX];     int length; }List; void CreatList(List* &L,char a[],int n) {     int i,k=0;     L=(List*)malloc(sizeof(List));     for(i=0;i<n;i++)     {         L->data[k]=a[i];         k++;     }     L->length=n; } void Display(List* &L) {     int i;     for(i=0;i<L->length;i++)     {         printf("%c ",L->data[i]);     } } void Long(List* &L) {     printf("%d\n",L->length); } bool IsNo(List* &L) {    if(L->length==0)    return true;    else    return false;      } void Loc(List* &L,int e) {     printf("%c\n",L->data[e]); } void loc(List* &L,char x) {     int i;     for(i=0;i<L->length;i++)     {         if(L->data[i]==x)         printf("%d ",i);                  } } bool InsertList(List* &L,char num,int location) {     int i;     if(location>=L->length||location<0)     return false;     for(i=L->length-1;i>=location-1;i--)     {         L->data[i+1]=L->data[i];     }     L->data[location-1]=num;     L->length++;     return true; } void Dele(List* &L,int location) {     int i;     for(i=location;i<=L->length-1;i++)     {         L->data[i-1]=L->data[i];     }     L->length--; } void DestroyList(List* &L) {     free(L); } int main() {     List* sxb;     char arry[5];     int j;     for(j=0;j<5;j++)     {         scanf("%c",&arry[j]);     }     CreatList(sxb,arry,5);     Display(sxb);     printf("\n");     Long(sxb);     Loc(sxb,3);     loc(sxb,'w');     InsertList(sxb,'f',4);     Display(sxb);     printf("\n");     Dele(sxb,3);       Display(sxb);     free(sxb);     return 0; }