C语言学习笔记-顺序表
#include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include "conio.h" #define ERROR 0 #define OK 1 #define MAXSIZE 10 typedef int ElemType; typedef struct{ ElemType elem [MAXSIZE]; int last; }SeqList; /*打印顺序表*/ void ShowList(SeqList *L) { for(int i=0; i<=L->last; i++) { printf("%d ",L->elem[i]); } printf("\n\n"); } /*删除顺序表*/ int DelList(SeqList *L,int i,ElemType *e){ int k; if((i<1)||(i>L->last+1)){ printf("删除位置不合法!"); return (ERROR); } *e=L->elem[i-1]; for(k=i;k<L->last;k++){ L->elem[k-1]=L->elem[k]; } L->last--; return (OK); } /*主函数*/ int _tmain(int argc, _TCHAR* argv[]) { SeqList *myList; int i; int flag=1; ElemType inputValue,deleteValue; myList= (SeqList *)malloc(sizeof(SeqList)); myList->last = -1; printf("输入"); while(flag){ scanf("%d",&inputValue); if(inputValue!=-1) { if(myList->last==MAXSIZE-1) printf("顺序表已满"); else { myList->last=myList->last+1; myList->elem[myList->last] = inputValue; } } else flag=0; } printf("输入的数组为:\n"); ShowList(myList); //删除冗余元素 printf("删除冗余数据........................\n\n"); i=0; while(i<myList->last){ if(myList->elem[i+1] != myList->elem[i]){ i++; }else{ DelList(myList,i+2,&deleteValue); } } printf("删除后的链表为:\n"); ShowList(myList); getch(); }