顺序表

 

线性表数据元素的类型为整型,以顺序表为存储结构。试编程实现:

⑴ 线性表置空

⑵ 求线性表长度

⑶ 数据元素的插入操作

⑷ 数据元素的删除操作

⑸ 显示线性表中的全部元素

#include<stdio.h> #define LIST_INIT_SIZE 100/* */ #define LISTINCREMENT 10/* */ typedef struct{/* */ int *elem; int length; int listsize; }SqList; SqList InitList_Sq(SqList L);/* */ SqList ClearList_Sq(SqList L); SqList ListInsert_Sq(SqList L,int i,int e);/* */ SqList ListDelete_Sq(SqList L,int i,int e); int ListLength_Sq(SqList L); void ShowList_Sq(SqList L); void SaveList_Sq(SqList L); void main(void) { SqList L; int e = 9,k,i; printf(" /t/t/tList_Sq/n"); printf("********************************************************************************"); printf("/t 1,Create an empty List /t2,Clear an List/n"); printf("/t 3,Show an List /t4,Print the length of List/n"); printf("/t 5,Insert an elem in List /t6,Delete an elem in List/n"); printf("/t 7,Save in /"c://SqList.dat/"/t8,Exit/n"); printf("********************************************************************************"); while(1) { printf("Your option(end with Enter):"); scanf("%d",&k); switch(k) { case 1: L=InitList_Sq(L); break; case 2: L=ClearList_Sq(L); break; case 3: ShowList_Sq(L); break; case 4: e=ListLength_Sq(L); break; case 5: printf("Input the number you what to insert:"); scanf("%d",&i); printf("Input the elem you what to insert:"); scanf("%d",&e); L=ListInsert_Sq(L,i,e); break; case 6: printf("Input the number you what to delete:"); scanf("%d",&i); L=ListDelete_Sq(L,i,e); break; case 7: SaveList_Sq (L); break; case 8: exit(1); break; default: break; } } } SqList InitList_Sq(SqList L) { L.elem = (int *)malloc(LIST_INIT_SIZE*sizeof(int));/* */ if(!L.elem)exit(0);/* */ L.length = 0;/* */ L.listsize = LIST_INIT_SIZE;/* */ printf("Ok,init list success!/n"); return L; } int ListLength_Sq(SqList L) { if(L.listsize!=LIST_INIT_SIZE) { printf("Not creat a List!/n"); return; } printf("Length of List--%d/n",L.length); return L.length; } SqList ClearList_Sq(SqList L) { if(L.listsize!=LIST_INIT_SIZE) { printf("Not creat a List!/n"); return; } L.length = 0; printf("Ok,clear list success!/n"); return L; } SqList ListInsert_Sq(SqList L,int i,int e) { int *p,*q; if(L.listsize!=LIST_INIT_SIZE) { printf("Not creat a List!/n"); return; } if(i<1||i>L.length+1) { printf("Error/n");/* */ return; } if(L.length>=L.listsize)/* */ { } q = &(L.elem[i-1]);/* */ for(p = &(L.elem[L.length-1]);p>=q;--p) {/* */ *(p+1) = *p; } *q = e;/* */ L.length+=1; /* */ printf("Ok,insert success!/n"); return L; } SqList ListDelete_Sq(SqList L,int i,int e) { int *p,*q; if(L.listsize!=LIST_INIT_SIZE) { printf("Not creat a List!/n"); return; } if(i<1||i>L.length+1) { printf("Error/n");/* */ return; } p = &(L.elem[i-1]); e = *p; printf("Delete %dth elem is %d/n",i,e); q = L.elem+L.length-1; for(++p;p<=q;++p) *(p-1) = *p; --L.length; printf("Ok,delete success!/n"); return L; } void ShowList_Sq(SqList L) { int i=0; if(L.listsize!=LIST_INIT_SIZE) { printf("Not creat a List!/n"); return; } if(L.length==0) { printf("List is empty!/n"); return; } for(i=0;i<L.length;i++) { printf("-----%d/n",L.elem[i]); } } void SaveList_Sq(SqList L) { FILE *F_SaveList; int i; if((F_SaveList=fopen("c://SqList.dat","wb"))!=NULL) { for(i=0;i<L.length;i++) fprintf(F_SaveList,"%d", L.elem[i]); } else printf("File error!"); fclose(F_SaveList); printf("Save the files successfully!/n"); } 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值