Link s; int j=0;
while (p.head&&j p.head = p.head->next; ++j; } if (!p.head||j>i-1) return ERROR; s= (Link)malloc(sizeof(LNode)); s->data =e; s->next = p.head->next;//插入新的元素 p.head->next =s; ++L.len; return OK; } int listDelete_L(LinkList &L,int i) { LinkList p=L; Link q; q=(Link)malloc(sizeof(LNode)); int j=0; while (p.head->next&&j p.head = p.head->next; ++j; } if (!p.head->next||j>i-1) return ERROR; q=p.head->next; p.head->next=q->next; free(q); --L.len; return OK; } int locateElem_L(LinkList &L,int i ) { LinkList p=L; int j=0; printf(\你要查找的元素是:\ while (p.head&&j { p.head = p.head->next; ++j; } printf(\ printf(\ system(\ /*if (!p.head) printf(\ else return ERROR; printf(\ system(\ return OK; } int menu() { int i; printf(\菜单\\n\ printf(\创建顺序链表\\n\ printf(\插入\\n\ printf(\删除\\n\ printf(\查找\\n\ printf(\打印所有元素\\n\ printf(\退出\\n\ printf(\ printf(\请输入正确的序号:\ scanf(\ if(i==0) { exit(0); } else return i; } 顺序存储: #include void listElemOutput_Sq(SqList *L); int listInsert_Sq(SqList *L,int i,ElemType e); int listDelete_Sq(SqList *L,int i ); int initList_Sq(SqList *L); int locateElem_Sq(SqList L,int i ); int menu(); void main() { int mchioce; int a=1; SqList La; mchioce=menu(); while ( mchioce!=0) { switch(mchioce) { case 1: initList_Sq(&La); break; break; case 2: int i,j; printf(\请输入插入的位置和元素:\ scanf(\ listInsert_Sq(&La,i,j); break; case 3: int k; printf(\请输入删除元素的位置:\ scanf(\ listDelete_Sq(&La, k); break; case 4: int a; printf(\请输入所查找元素的位置:\ scanf(\ locateElem_Sq(La,a); break; case 5: listElemOutput_Sq(&La); break; default: printf(\输入错误!!\ break; } system(\ mchioce=menu(); system(\ } } void listElemInput_Sq(SqList &L) { int la_len; int i; printf(\输入线性表LA元素个数:\ scanf(\ printf(\请输入A的元素:\ for(i=1;i<=la_len;i++) { scanf(\ L.length++; } } void listElemOutput_Sq(SqList *L) { int i=1; printf(\输出:\\n\\t\ for(;i<=L->length;i++) { printf(\ %d\ } printf(\ system(\ return; } int listInsert_Sq(SqList *L,int i,ElemType e) { /*在顺序表L中第i个位置之前插入新的元素 e */ /* i的合法值为1<= i <= ListLength_Sq(L)+1 */ ElemType *p,*q,*newbase; if(i<1||i>L->length+1) return ERROR; /* i值不和法*/ if(L->length>=L->listsize){ /*当前存储空间已满,增加分配*/ newbase=(ElemType *)realloc(L->elem,(L->listsize+LISTINCREMENT)*sizeof(ElemType));//重新分配新的内存空间 if(!newbase) exit(OVERFLOW); /*存储空间分配失败*/
相关推荐: