//在计算机上先输入一串正整数的序列。请编写一个程序,首先用顺序表存储该序列。 //然后执行删除操作,即先从顺序表中找出最小的结点,删除它。然后再在剩余的表 //中,找出最小的结点,再删除之。直至表空为止。 #include"stdio.h" #include"stdlib.h" #include"test1.h" #include"string.h" #define Max 10 int main() { int i,pos,count; char str[Max],sum=0; SqList *L; L=CreateSqList(); //创建一个指针 InitSqList(L); //初始化该指针 printf("输入一串正整数:\n"); gets(str); //输入一段正整数 count=strlen(str); //记数 for(i=0;ilength=0; return temp; } void InitSqList(SqList *L)//初始化线性表 { SqList *p; p=L; if(!L) return ; p->data[0]=0; p->length=0; } void InsertSqList(SqList *L,elemtype e)//往线性表中插入一个数值 { SqList *p; p=L; if(!L) return ; else { p->data[p->length]=e; p->length++; } } void Display(SqList *L)//输出线性表中的元素 { int i=1; SqList *p; p=L; if(!L) { printf("线性表为空!\n"); return ; } while(i<=p->length) { printf("第%d个元素是:\n",i); printf("%c\n",p->data[i-1]); i++; } } unsigned int MinSqList(SqList *L)//在线性表中找到最小的值的结点 { int i,pos=0; SqList *p; p=L; if(!L) return ERROR; for(i=1;ilength;i++) { if(p->data[pos]>p->data[i]) pos=i; } return pos; } unsigned int DeleteSqList(SqList *L,int pos,elemtype *e)//删除指定位置的结点 { int i; SqList *p; p=L; if(!L) return ERROR; else if(pos<1 || pos>(p->length)) { printf("参数出错!\n"); return ERROR; } else { *e=p->data[pos-1]; for(i=pos;ilength;i++) p->data[i-1]=p->data[i]; p->length--; return OK; } } /////////////////////////////////// /* test1.h */ /* */ /* filename:test1.h */ /* description:test1的头文件 */ /* designer:zhu jian */ /* data:12-10-24 */ ////////////////////////////////// #ifndef _DATA_STRUCTURE_TEST1_H_ #define _DATA_STRUCTURE_TEST1_H_ #ifndef ERROR #define ERROR 0 #endif #ifndef OK #define OK 1 #endif #ifndef NULL #define NULL 0 #endif #define Maxsize 10//定义数据量最大为100个 typedef char elemtype;//用elemtype代替char typedef struct{//顺序表的存储结构 elemtype data[Maxsize]; int length; }SqList; SqList *CreateSqList(void);//创建一个线性表 void InitSqList(SqList *L);//初始化线性表 void InsertSqList(SqList *L,elemtype e);//往线性表中插入一个数值 void Display(SqList *L);//输出线性表中的元素 unsigned int MinSqList(SqList *L);//在线性表中找到最小的值的结点 unsigned int DeleteSqList(SqList *L,int pos,elemtype *e);//删除指定位置的结点 #endif