数据结构-顺序表得实现-删除插入初始化打印

来源:互联网 发布:淘宝平铺图拍摄 编辑:程序博客网 时间:2024/06/10 06:30

/*时间:2016-9-29*/# include<stdio.h># include<stdlib.h># include<string.h># include "iostream"using namespace std;typedef struct {int *elem;int length;int listsize;}sqList;void print_listL(sqList* L);//打印顺序表int Insert_Sq(sqList *L,int L_location,int L_num);//插入顺序表int InitList_Sq(sqList*L,int number);//初始化顺序表int Delete_Sq(sqList* L,int L_location);//删除顺序表int main(void){while(1){sqList l;int number,operation;
printf("please print number and operation: ");scanf("%d %d",&number,&operation);if (number==0&&operation==0)break;InitList_Sq(&l,number);char string[64];int l_location,l_num;while (operation--){cout<<"please print 'insert'or'delete',location and number: ";scanf("%s %d %d",string,&l_location,&l_num);if (strncmp(string,"insert",6)==0){Insert_Sq(&l,l_location,l_num);print_listL(&l);continue;}if(strncmp(string,"delete",6)==0){Delete_Sq(&l,l_location);print_listL(&l);continue;}}if (!l.elem)exit(0);free(l.elem);}system("pause");return 0;}void print_listL(sqList* L){for (int i = 0;i!=L->length;i++){printf("%d ",L->elem[i]);}}int Insert_Sq(sqList *L,int L_location,int L_num){L->elem = (int*)realloc(L->elem,sizeof(int)*(L->length+1));int i = L->length;for (;i!=L_location-1;--i){L->elem[i] = L->elem[i-1];}L->elem[i] = L_num;L->length++;L->listsize++;return 0;}int InitList_Sq(sqList*L,int number){L->elem = (int*)malloc(sizeof(int)*number);if (!L->elem){printf("error");exit(0);}L->length = number;L->listsize = number;for (int i = 0;i!=L->length;i++){scanf_s("%d",L->elem + i);}return 0;}int Delete_Sq(sqList* L,int L_location){int i = L_location - 1;for (;i!=L->length-1;i++){L->elem[i] = L->elem[i+1];}L->length--;L->listsize--;return 0;
}
输出结果:
<img src="http://img.blog.csdn.net/20160929124937534?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

0 0
原创粉丝点击