線性表的簡單操作
#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; }