[LeetCode C 实现]26. Remove Duplicates from Sorted Array

Given a sorted array, remove the duplicates in-place such that each element appear only once and return the new length.

Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.

Example:

Given nums = [1,1,2],

Your function shoul......

[LeetCode C 实现]27.Remove Element

Given an array and a value, remove all instances of that value in-place and return the new length.

Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.

The order of elements can be changed. It doesn't matter what you leav......

[LeetCode C 实现]1.Two Sum

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

Example:

Given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + ......

栈操作C语言实现

栈是一种限制线性列表,该类列表的添加和删除操作只能在一端实现,称为栈顶。栈的实现可以使用数组也可以使用链表来实现。

下面的C语言部分实现了顺序栈的基本操作,包括栈的初始化、入栈、出栈、获得栈顶元素的值等。

#include <stdio.h>

#include <stdbool.h>

/*定义栈的大小*/

#define maxsize 100

typedef int ElemType;

/*顺序栈的实现*/

typedef struct SqStack

{

ElemType data[maxsize];

int top;

}SqStack;

/*栈的初始化*......

TLPI-Chapter 30 线程:线程同步

互斥量/*************************************************************************\

* Copyright (C) Michael Kerrisk, 2017. *

* *

* This program is free software. You may use, modify, and redistribut......

C语言位域

本文是阅读再谈C语言位域一文的读书笔记,结合K&&R C语言程序设计与维基百科中相关内容进行总结。

位段(或称“位域”,Bit field)为一种数据结构,可以把数据以位的形式紧凑的储存,并允许程序员对此结构的位进行操作。这种数据结构的好处:

可以使数据单元节省储存空间,当程序需要成千上万个数据单元时,这种方法就显得尤为重要。

位域可以很方便的访问一个整数值的部分内容从而可以简化程序源代码。

而位域这种数据结构的缺点在于,其内存分配与内存对齐的实现方式依赖于具体的机器和系统,在不同的平台可能有不同的结果,这导致了位域在本质上是不可移植的。

在C语言中,位域的声明和结构......

命令行参数解析

首先使用命令行解析函数getopt与getopt_long函数需要包含如下头文件:

#include <unistd.h>

extern char *optarg; //选项的参数指针

extern int optind, //下一次调用getopt的时,从optind存储的位置处重新开始检查选项。

extern int opterr, //当opterr=0时,getopt不向stderr输出错误信息。

extern int optopt; //当命令行选项字符不包括在optstring中或者选项缺少必要的参数时,该选项存储在optopt 中,getopt返回&#......

程序员面试金典(三)C实现

题目描述

编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前。

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <stdbool.h>

typedef int ElemType;

/*定义结构体*/

typedef struct LNode

{

struct LNode *next;

ElemType num;

}LNode;

/*链表初始化*/

void initList(LNode ** head)

{

i......

TLPI-Chapter 26 监控子进程

/*************************************************************************\

* Copyright (C) Michael Kerrisk, 2017. *

* *

* This program is free software. You may use, modify, and redistribute i......

TLPI-Chapter 25 进程的终止

#define _BSD_SOURCE /* Get on_exit() declaration from <stdlib.h> */

#include <stdlib.h>

#include "tlpi_hdr.h"

static void

atexitFunc1(void)

{

printf("atexit function 1 called\n");

}

static void

atexitFunc2(void)

{

printf("atexit function 2 called\n");

......