コード例 #1
0
ファイル: BFS.c プロジェクト: dreamer2018/DataStructure
//将输入的数据插入邻阶表中
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;
    }
}
コード例 #2
0
ファイル: main.c プロジェクト: 70kg/Data-Structures-in-C
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;
}