`

c - linkedlist

 
阅读更多

c - linkedlist

 

store ordered number in linkedlist, no repeat.

 

 

code:

    linkedlist_test.c:

 

#include <stdio.h>
#include <stdlib.h>

extern struct linkedlist {
	int num;
	struct linkedlist *pnext;
};

/**
 * add a num to ordered linkedlist, if it not exists yet,
 * 
 * @param num
 * 	the number to add
 * @param start
 * 	start of the linkedlist
 * 
 * @return
 * 	the start
 */
struct linkedlist *add(int num, struct linkedlist *start) {
	if(start == NULL) {
		start = (struct linkedlist *) malloc(sizeof(struct linkedlist));
		start->num = num;
		start->pnext = NULL;
	} else if((start->num) < num) {
		start->pnext = add(num, start->pnext);
	} else if((start->num) > num) {
		struct linkedlist *old_start = start;
		start = (struct linkedlist *) malloc(sizeof(struct linkedlist));
		start->num = num;
		start->pnext=old_start;
	}
		
	return start;
}

/**
 * print the linkedlist
 * 
 * @param start
 * 	start of the linkedlist
 * @param count
 	used to count elements
 */
void printll(struct linkedlist *start, int count){
	if(start != NULL) {
		count++;
		printf("%d, ",start->num);
		printll(start->pnext, count);
	} else {
		printf("\ntotal: %d\n",count);	
	}
}


int main() {
	int nums[] = {5,3,9,2,100,4,23,2,6,19,17,11,41,100,9,6,19}, i, n, count;
	struct linkedlist *start = NULL;
	n = sizeof(nums) / sizeof(nums[0]);
	for(i=0;i<n;i++) {
		start = add(nums[i], start);
	}
	count = 0;
	printll(start, count);
	return 1;
}
分享到:
评论

相关推荐

    List-LinkedList 单链表就地反转

    本文主要介绍单链表的就地反转算法实现,并通过具体的C语言代码示例来解释这一过程。单链表是一种常见的线性数据结构,其中每个元素包含一个指向下一个元素的指针。就地反转指的是在不使用额外的数据结构的情况下,...

    go-linkedlist:静态类型的链表

    在编程领域,链表是一种常见的数据结构,尤其在低级语言如C或C++中广泛使用。但在Go语言中,由于其内置的切片(slices)和映射(maps)等高级数据结构,链表的使用相对较少。然而,对于特定场景,如需要频繁地在数据...

    exp2-1 linkedlist.c

    exp2-1 linkedlist.c

    C语言实现LinkedList

    C语言实现LinkedList

    基于C语言的数据结构-单链表linkedList

    单链表是计算机科学中数据结构的一个基本概念,它在C语言中被广泛用于实现各种算法和数据管理。本文将深入探讨单链表的概念、结构、操作以及如何在C语言中实现。 首先,理解单链表的基本概念。单链表是一种线性数据...

    linkedList.c

    linkedList.c

    LinkedList 部分源码

    public LinkedList(Collection&lt;? extends E&gt; c) { this(); // 调用无参构造方法 addAll(c); // 将集合c中的所有元素添加到LinkedList中 } ``` #### 五、常用方法 1. **addFirst()** - 方法实现: ```java ...

    基于paho.mqtt.c编写的mqtt客户端

    Paho是 Eclipse Foundation 下的一个开源项目,提供了多种编程语言的 MQTT 客户端库,其中包括 C 语言版本的 Paho MQTT.C。这个库为开发者提供了一组易于使用的API,用于实现 MQTT 协议的客户端功能,包括连接到 ...

    源码解析jdk7.0集合:LinkedList的底层实现原理.pdf

    public LinkedList(Collection&lt;? extends E&gt; c) { this(); addAll(c); } ``` 无参构造方法直接创建一个空的LinkedList对象。而带有一个Collection参数的构造方法,则在创建LinkedList对象后,调用addAll方法将传入...

    LinkedList_Descending

    LinkedList是一种线性数据结构,它在计算机科学中广泛使用,特别是在C语言中。这个项目或教程可能专注于在LinkedList中实现反向排序的元素。 LinkedList的特点是它不包含连续的内存位置,每个元素(节点)包含数据...

    用linkedlist读取两个matrix txt文件并且表达与相加

    用linkedlist读取两个matrix txt文件并且表达与相加 比如matrix是4 4,用linkedlist录入以后再表达出来

    LinkedList.c

    LinkedList.c

    javalinkedlist:编写一个程序,演示您了解如何使用Java LinkedList类

    - `LinkedList(Collection&lt;? extends E&gt; c)`:通过给定集合初始化链表。 2. **基本操作**: - `add(E e)`:在链表末尾添加元素。 - `add(int index, E element)`:在指定位置插入元素。 - `remove(int index)`...

    linkedlist problems

    尽管文档使用了C语言的语法,但它更侧重于指针操作和链表算法的重要概念,而非C语言本身的特性。 - **问题列表**:文档列出了具体的18个问题,包括但不限于计数(Count)、获取第n个元素(GetNth)、删除链表...

    LinkedList源码分析

    public LinkedList(Collection&lt;? extends E&gt; c) { this(); // 调用无参构造函数 addAll(c); // 将集合 c 中的数据加入 } ``` **注意**: - 构造函数并没有提供直接指定链表长度的方式。 - 当使用 `new LinkedList...

    JMeterWebSocketSampler-1.0.2-SNAPSHOT.jar

    java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:953) java.util.LinkedList$ListItr.next(LinkedList.java:886) JMeter.plugins.functional.samplers.websocket.ServiceSocket....

    Java LinkedList教程

    LinkedList&lt;E&gt; list = new LinkedList(Collection&lt;? extends E&gt; c); ``` 创建一个简单的链表实例: ```java import java.util.LinkedList; public class RunoobTest { public static void main(String[] args) {...

    two_way LinkedList.zip

    双向链表(two-way LinkedList)是链表的一种变体,它比单向链表增加了更多的灵活性。本教程将深入探讨用C语言实现双向链表的相关知识点。 双向链表与单向链表的主要区别在于每个节点不仅包含数据,还包含两个指针...

Global site tag (gtag.js) - Google Analytics