内蒙古科技大学经管学院 数据结构上机试题.docVIP

  • 10
  • 0
  • 约1.24万字
  • 约 14页
  • 2016-10-11 发布于贵州
  • 举报

内蒙古科技大学经管学院 数据结构上机试题.doc

内蒙古科技大学经管学院 数据结构上机试题

内 蒙 古 科 技 大 学 数 据 结 构 原 理 班 级 09 信 管 1 班 学 号 姓 名 0 9 6 5 1 3 8XXX 成 绩 顺序表的操作 (1)插入元素操作:将新元素x插入到顺序表a中第i个位置。 (2)删除元素操作:删除顺序表a中第i个元素。 #includestdio.h #include stdlib.h #define LIST_INIT_SIZE 10 #define LISTINCREMENT 10 #define ERROR 0 #define OK 1 #define OVERFLOW -1 typedef struct{ int *elem; int length; int listsize; }SqList; int InitList(SqList *L) { int i,k; L-elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int)); if(!L-elem) exit(OVERFLOW); L-length =10; L-listsize = LIST_INIT_SIZE; for(i=0;iL-length;i++) { scanf(%d,k); L-elem[i]=k; } return OK; } int ListInsert(SqList *L,int i, int e) { int *newbase,*q,*p; if(i1||iL-length+1) return ERROR; if(L-length=L-listsize){ newbase = ( int *)realloc(L-elem,( L-listsize +LISTINCREMENT)*sizeof(int)); if(!newbase) exit(OVERFLOW) ; L-elem = newbase; L-listsize+=LISTINCREMENT; } q=(L-elem[i-1]); for(p=(L-elem[L-length-1]);p=q;--p) *(p+1)=*p; *q=e; ++L-length; return OK; } int ListDelete(SqList *L, int i, int e) { int *p, *q; if (i1 || iL-length) return ERROR; p = (L-elem[i-1]); e = *p; q = L-elem+L-length-1; for (++p; p=q; ++p) *(p-1) = *p; --L-length; return OK; } int display(SqList *L) { int i; for(i=0;iL-length;i++) { printf(%d,L-elem[i]); printf( ); } return OK; } int main() { SqList L; char e; int i,num; printf(请初始化10个元素:\n); InitList(L); printf(初始化后); display(L); printf(\n请输入你要删除的元素的位置\n); scanf(%d,i); ListDelete(L,i,e); printf(删除后:\n); display(L); printf(\n请输入插入位置和元素(格式“位置”,“元素”)); scanf(%d,%d,i,num); ListInsert(L,i,num); printf(插入后:\n); display(L); return OK; } 二、单链表的操作 (1)创建一个带头结点的单链表; (2)插入元素操作:将新元素x插入到单链表中第i个元素之后; (3

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档