数据结构上机指导(程序实现).docVIP

  • 9
  • 0
  • 约5.82万字
  • 约 128页
  • 2017-10-22 发布于北京
  • 举报
数据结构上机指导(程序实现)

实验一、利用线性表的顺序存储结构实现线性表的创建、插入、删除、查找等算法 /*顺序线性表*/ #includestdio.h #define INITSIZE 50 #define ADDNODE 10 typedef struct element { int data; } ELEMENT; typedef struct { ELEMENT *sq; int size; int length; }SLIST; SLIST sqlist,*list; ELEMENT elem,*p; void listcreate( ) /*建立线性表*/ { int i; list=sqlist; list-sq=(ELEMENT *)malloc( INITSIZE*sizeof(ELEMENT)) if(!list-sq) exit(0); list-size=INITSIZE; list-length=0; } if(list-sq!=NULL) { printf( INPUT LIST LENGTH: ); scanf(%d,list -length); for(i=0;ilist-length;i++) scanf(%d,list-sq[i]); } } void freelist( ) /*撤消线性表*/ { if(list-sq!=NULL) { free( list-sq); list-size=0; list-length=0; } } void listlen( ) /*求线性表长度*/ { if(list-sq!=0) { printf(list length is: ); printf(%d,list-length); } getch( ); } int findelement( ) /*查找数据元素*/ { int i; printf(\\n input find elemnt : ); scanf(%d, elem.data); for(i=0;ilist-length;i++) if(list-sq[i].data==elem.data) { printf (\\n element position :); printf(%d,i+1); getch(); return(i+1); } printf(not find!); getch(); return( 0); } void listinsert( ) /*数据元素插入*/ { int i,position; ELEMENT *tmplist; printf( input insert element: ); scanf(%d,elem.data); printf(input insert position : ); scanf(%d,position); if(position1||positionlist-length+1) { printf(insert position error ); return; } if(list-length==list-size) { tmplist=(ELEMENT*)realloc(list-sq,(list-size+ADDNODE)*sizeof(ELEMENT)); if(tmplist==NULL) { printf(not space); exit(0); } list-sq=tmplist; list-size=list-size+ADDNODE; } list-length++; for(i=list-length-1;i=position-1;i--) list-sq[i+1]=list-sq[i]; list-sq[position-1].data=elem.data; } void listdelete( ) /*数据元素删除*/ { int i, position; printf(input delete element : ); scanf (%d,elem.data); for(i=0;ilis

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档