当前位置: 首页>>代码示例>>C++>>正文


C++ ListLength函数代码示例

本文整理汇总了C++中ListLength函数的典型用法代码示例。如果您正苦于以下问题:C++ ListLength函数的具体用法?C++ ListLength怎么用?C++ ListLength使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了ListLength函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: main

int main(void)
{
	ElemType site[11] = { 'a', 'n', 'o', 't', 'h', 'e', 'r', 'h', 'o', 'm', 'e' };
	LinkList *Link, *LinkR;
	ElemType e;

	CreateListF(Link, site, 11);
	CreateListR(LinkR, site, 11);
	DispList(Link);
	DispList(LinkR);
	DestroyList(LinkR);
	if (ListEmpty(Link))
	{
		printf("List is empty\n");
	}
	else
	{
		printf("List isn't empty\n");
	}
	printf("ListLength: %d\n", ListLength(Link));
	GetElem(Link, ListLength(Link), e);
	ListInsert(Link, 2, e);
	DispList(Link);
	ListDelete(Link, 3, e);
	DispList(Link);
	printf("The location of 'o' is %d\n", LocateElem(Link, 'o'));
	DestroyList(Link);

	return 0;
}
开发者ID:DIYgod,项目名称:StudyRecord,代码行数:30,代码来源:main.cpp

示例2: ListFirstCrossNodeOf2List

// 9. 求两个单链表相交的第一个节点
ListNode * ListFirstCrossNodeOf2List(ListNode * head1, ListNode * head2)
{
	if(head1 == NULL || head2 == NULL) return NULL;
	if(!ListIsCrossed(head1, head2)) return NULL;

	int len1 = ListLength(head1);
	int len2 = ListLength(head2);
	ListNode * p = head1;
	ListNode * q = head2;
	if(len1 > len2) {
		int m = len1 - len2;
		while(m > 0) {
			p = p->next;
			m--;
		}
	} else {
		int n = len2 - len1;
		while(n > 0) {
			q = q->next;
			n--;
		}
	}

	while(p != q) {
		p = p->next;
		q = q->next;
	}

	return p;
}
开发者ID:cmLighters,项目名称:DataStructure,代码行数:31,代码来源:list_problem.c

示例3: GetLinkListItem

/**************************************************
函数功能:获取链表某一位置处的值
参数1:链表头指针
参数2:待获取元素的位置
参数3(Output):返回元素
参数4:函数指针,指出为数据赋值的方式
返回值:无
说明:
头文件: <assert.h>
        <stdlib.h>
		<stdio.h>
作者: Lee.C
完成时间:2015-05-10
修改时间:2016-05-04
修改说明:代码重构
**************************************************/
void GetLinkListItem(const LinkList L, size_t n, LinkListItem *e, void (*Assgin)(LinkListItem *dst, const LinkListItem *src))
{
	assert(L);
	assert(L->next);
	assert(n >= 1 && n <= ListLength(L));
	
	/*******************************************
	 * current : 指向链表待获取处的节点,
	             初始值为指向链表第一个元素的指针
	 * currentPos : 待获取处的节点位置,从第1个节点算起
	*******************************************/
	LNode *current = L->next;
	size_t currentPos = 1;

	while(current && currentPos < n)
	{
		current = current->next;
		currentPos++;
	}

	if(!current || currentPos > n)
	{
		fputs("Call GetItem() ERROR !\n", stdout);
		fprintf(stdout, "The List`s length is %lu,the get location %lu is overflow\n", ListLength(L), n);
		exit(EXIT_FAILURE);
	}

	Assgin(e, &current->data);
}
开发者ID:LeeC-XDU,项目名称:C_CplusplusSrc,代码行数:45,代码来源:linklist.c

示例4: DeleteNode

/* 链表删除 */
Status DeleteNode(LinkList &L, int i) {
    LinkList p = (LinkList) malloc (sizeof(LNode));
    LinkList q = (LinkList) malloc (sizeof(LNode));
    if(i <= 0 || i > ListLength(L)) return ERROR;
    int j = 0;

    if (i == 1) {
        q = L;    
        L = L->next;
    } else if (i == ListLength(L) + 1) {
        for (p = L; p->next->next != NULL; p = p->next)
            q = p->next->next;
        p->next = NULL;
    } else {
        p = L;
        while (p->next && j < i - 2) {
            p = p->next; ++j;
        }
        if (!p->next || j > i - 1) return ERROR;

        q = p->next;
        p->next = q->next;
    }
    free(q);

    return OK;
}
开发者ID:ubzd,项目名称:practice,代码行数:28,代码来源:List_operate.cpp

示例5: search_common

/*
 * 给定两个单链表,找出两个链表的公共节点
 * 思路:由于每个单链表节点只有一个next域,所以从第一个公共节点开始往后,链表都是重合的
 * 先遍历两个链表,得到链表的长度,并求出长度差,在长链表上先遍历长度之差个节点之后,再
 * 同步遍历两个链表,直到找到相同的节点,或者一直到链表结束
 * 时间复杂度O(len1 + len2)
 */
void search_common(LinkList La, LinkList Lb)
{
    int len1 = ListLength(La);
    int len2 = ListLength(Lb);
    int dist;
    LinkList longlist, shortlist;

    if ( len1 > len2 )
    {
        longlist = La->next;
        shortlist = Lb->next;
        dist = len1 - len2;
    }
    else
    {
        longlist = Lb->next;
        shortlist = La->next;
        dist = len2 - len1;
    }

    while ( dist-- )
        longlist = longlist->next;
    while ( longlist )
    {
        if ( longlist == shortlist )
            ListTraverse(longlist, print);
        else
        {
            longlist = longlist->next;
            shortlist = shortlist->next;
        }
    }
}
开发者ID:kobemiller,项目名称:mycode,代码行数:40,代码来源:link_list.cpp

示例6: MergeList

 void MergeList(SqList La,SqList Lb,SqList &Lc) // 算法2.2
 { // 已知线性表La和Lb中的数据元素按值非递减排列。
   // 归并La和Lb得到新的线性表Lc,Lc的数据元素也按值非递减排列
   int i=1,j=1,k=0;
   int La_len,Lb_len;
   ElemType ai,bj;
   InitList(Lc); // 创建空表Lc
   La_len=ListLength(La);
   Lb_len=ListLength(Lb);
   while(i<=La_len&&j<=Lb_len) // 表La和表Lb均非空
   {
     GetElem(La,i,ai);
     GetElem(Lb,j,bj);
     if(ai<=bj)
     {
       ListInsert(Lc,++k,ai);
       ++i;
     }
     else
     {
       ListInsert(Lc,++k,bj);
       ++j;
     }
   } // 以下两个while循环只会有一个被执行
   while(i<=La_len) // 表La非空且表Lb空
   {
     GetElem(La,i++,ai);
     ListInsert(Lc,++k,ai);
   }
   while(j<=Lb_len) // 表Lb非空且表La空
   {
     GetElem(Lb,j++,bj);
     ListInsert(Lc,++k,bj);
   }
 }
开发者ID:jiayuehua,项目名称:datastructure_gao,代码行数:35,代码来源:Algo2-2.cpp

示例7: main

int main(int argc, char *argv[])
{
	DataType a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9,};
	DataType b[] = {10, 11, 12, 13, 14, 15};
	DataType e;

	CirList A;	/* 声明循环链表A和B */
	CirList B;
	p_CirList C = NULL;

	InitList(&A);	/* 初始化 */
	InitList(&B);
	C = &A;

	/* 插入元素 */
	Insert_Elem(&A, a, sizeof(a) / sizeof(DataType));
	Insert_Elem(&B, b, sizeof(b) / sizeof(DataType));

	printf("循环链表A中有%d个元素\n", ListLength(A));
	ListTraverse(A, Show_Elem);
	
	putchar('\n');

	printf("循环链表B中有%d个元素\n", ListLength(B));
	ListTraverse(B, Show_Elem);

	puts("\n\n");

	if (GetElem(&A, 8, &e))
		printf("循环链表A第8个元素是%4d\n", e);
	
	if (GetElem(&B, 5, &e))
		printf("循环链表B第5个元素是%4d\n", e);
	putchar('\n');

	printf("删除链表B最后一个元素\n");
	ListDelete(&B, 6, &e);
	ListTraverse(B, Show_Elem);

	putchar('\n');

	C = Merge(&A, &B);	/* 合并 */
	
	printf("合并后的链表有%d个元素\n", ListLength(*C));
	ListTraverse(*C, Show_Elem);	

	putchar('\n');
	
	if (GetElem(C, 14, &e))
		printf("合并后的链表第14个元素是%4d\n", e);

	ClearList(&A);
	ClearList(&B);
	
	putchar('\n');
	
	exit(EXIT_SUCCESS);
}
开发者ID:astrotycoon,项目名称:ADT,代码行数:58,代码来源:applic_1_0.c

示例8: GetElem

status GetElem(SqList *L, int i, ElemType e)
{
	if(ListLength(L)==0 || i>ListLength(L) || i<1) {
		return ERROR;
	}
	*e = L.data[i-1];
	
	return OK;
}
开发者ID:youngchou1997,项目名称:cbook,代码行数:9,代码来源:union.c

示例9: wdbg

Term wdbg(Term t, Term ind)
	{
	t=CompoundArg1(t);
	t=GetAtomProperty(t,PROP_TYPE);
	t=CompoundArg1(t);
	printf("%d terms %d inds\n",ListLength(CompoundArg1(t)),
			ListLength(CompoundArg2(t)));
	return 0;
	}
开发者ID:restrepo,项目名称:micrOMEGAs,代码行数:9,代码来源:alg1f.c

示例10: main

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;
}
开发者ID:70kg,项目名称:Data-Structures-in-C,代码行数:54,代码来源:main.c

示例11: Union

void Union(List &La, List Lb) {  // 算法2.1
  // 将所有在线性表Lb中但不在La中的数据元素插入到La中
  int La_len,Lb_len,i;
  ElemType e;
  La_len = ListLength(La);          // 求线性表的长度  
  Lb_len = ListLength(Lb);
  for (i=1; i<=Lb_len; i++) {
    GetElem(Lb, i, e);              // 取Lb中第i个数据元素赋给e
    if (!LocateElem(La, e, equal))  // La中不存在和e相同的数据元素
      ListInsert(La, ++La_len, e);  // 插入
  }
} // union
开发者ID:PengJi,项目名称:Data-Structure,代码行数:12,代码来源:ALGO0201.CPP

示例12: unionL

void unionL(SqList *La,SqList Lb)
{
	ElemType e;
	int La_len=ListLength(*La);
	int Lb_len=ListLength(Lb);
	for (int i=1;i<=Lb_len;i++)
	{
		GetElem(Lb,i,&e);
		if (!LocateElem(*La,e))
			ListInsert(La,++La_len,e);
	}
}
开发者ID:SuooL,项目名称:LearnDataStructureAndAlgorithms,代码行数:12,代码来源:LinerList.c

示例13: GetPowerSet

void GetPowerSet(int i, List A, List &B) {  // 算法6.15
   // 线性表A表示集合A,线性表B表示幂集ρ(A)的一个元素。
   // 局部量k为进入函数时表B的当前长度。
   // 第一次调用本函数时,B为空表,i=1。
   ElemType x;
   int k;
   if (i > ListLength(A)) Output(B); // 输出当前B值,即ρ(A)的一个元素
   else { 
      GetElem(A, i, x);        k = ListLength(B);
      ListInsert(B, k+1, x);   GetPowerSet(i+1, A, B);
      ListDelete(B, k+1, x);   GetPowerSet(i+1, A, B);
   }
} // GetPowerSet
开发者ID:PengJi,项目名称:Data-Structure,代码行数:13,代码来源:ALGO0615.CPP

示例14: unionL

void unionL(SqList *La, SqList Lb) /* union Lb to La */
{				
    int La_len, Lb_len, i;
    ElemType e;
    La_len = ListLength(*La);
    Lb_len = ListLength(Lb);

    for (i = 1; i <= Lb_len; ++i) {
	GetElem(Lb, i, &e);
	if (!LocateElem(*La, e))
	    ListInsert(La, ++La_len, e);
    }
    
}
开发者ID:benbee,项目名称:Learning,代码行数:14,代码来源:sqlist.c

示例15: alg1_fix_w1

static void alg1_fix_w1(Term w)
	{
	List wi;
	List l1,l2,al;
	
	if(is_empty_list(CompoundArg2(w)))
		return;
	
	wi=NewList();
	l1=CompoundArg1(w);
	while(!is_empty_list(ListTail(l1)))
		{
		wi=AppendLast(wi,CompoundArg2(ListFirst(l1)));
		l1=ListTail(l1);
		}
	al=CompoundArg2(w);
	
	if(!is_empty_list(wi))
	while(!is_empty_list(al))
		{
		Term a1;
		List wia;
		a1=ListFirst(al);
		wia=NewList();
		l1=CompoundArg2(a1);
		while(!is_empty_list(l1))
			{
			wia=AppendLast(wia,CompoundArg2(ListFirst(l1)));
			l1=ListTail(l1);
			}
		if(ListLength(wi)!=ListLength(wia))
			{
			puts("Internal error a1fw");
			longjmp(alg1_jmp_buf,1);
			}
		l1=wi;
		l2=wia;
		while(!is_empty_list(l1))
			{
			rename_ind(a1,ListFirst(l2),ListFirst(l1));
			l1=ListTail(l1);
			l2=ListTail(l2);
			}
		FreeAtomic(wia);
		al=ListTail(al);
		}
	FreeAtomic(wi);		
	
	}
开发者ID:restrepo,项目名称:micrOMEGAs,代码行数:49,代码来源:alg1f.c


注:本文中的ListLength函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。