//将输入的数据插入邻阶表中 void Insert(AdjList *a,int i,DATATYPE d1,DATATYPE d2) { int j,k; ArcNode *p,*q; j=Located(a,d1); k=Located(a,d2); p=(ArcNode *)malloc(sizeof(ArcNode)); p->adj=k; p->next=NULL; q=a->vertex[j].head; if(q==NULL) { a->vertex[j].head=p; } else if(q->next==NULL) { q->next=p; } else { while(q!=NULL && q->next!=NULL) { q=q->next; } q->next=p; } }
int main(int argc, const char * argv[]) { int a[10] = {1,3,9,8,4,2,5,0,7.6}; int b[4] = {2,2,3}; int c[4] = {1,3,3,4}; SeqList list;//这个怎么直接全部赋值 fillList(&list, a, 10); printf("获取位置:%d\n",Locate(list, 2));//按内容查找 printf("插入:%s\n",InsList(&list,2,10)==1?"OK":"ERROR");//插入 int delement; printf("删除:%s,删除的元素:%d\n",DelList(&list,3,&delement)==1?"ok":"ERROR",delement);//删除 SeqList list1,list2,list3; fillList(&list1,b,3); fillList(&list2,c,4); mergeList(&list1,&list2,&list3);//合并两个非递减有序线性表 printf("合并后的list:%d\n",list3.elem[7]); printf("---------%s---------\n","链表"); //----------链表------- LinkList L; InitList(&L); //CreateFromHead(L); CreateFormTail(&L); Node *p = Get(L, 2); printf("链表的第2个节点:%c\n",p->data); Node *pp = Located(L,'2'); printf("key是2的节点:%c\n",pp->data); printf("链表的长度是:%d\n",ListLength(L)); InseList(L,1,'5'); printf("插入后的链表长度:%d,首节点:%c\n",ListLength(L),Get(L, 1)->data); char tem; DellList(L,1,&tem); printf("链表长度%d,删除链表元素:%c\n",ListLength(L),tem); LinkList Lb = L; printf("合并后的长度%d\n",ListLength(MergeLinkList(L,Lb))); return 0; }