Time of Update: 2018-07-25
建立單鏈表有多種方式,我這裡介紹從尾部添加新節點的建立方式。 建立的過程: 1.定義節點的資料結構 c語言中鏈表節點是用結構體來實現,建立之前要明白資料域需要什麼類型的資料。例如: //定義鏈表中的節點typedef struct node{ int data; //鏈表中的資料 struct node * p_next;//指向下一節點的指標}Node,*pNode; 2.動態建立節點 建立節點的過程中要用到三個指標:
Time of Update: 2018-07-25
三層已經學了很久了,一直沒有寫部落格是因為自己感覺對三層的理解還太膚淺,怕寫的不對誤導別人。當然就現在我的水平而言對於三層的理解還是不夠深刻,但是我感覺不至於誤導別人了,所以將我對於三層的一些理解寫出來,希望會對和我當初一樣迷茫的菜鳥一些協助。 回想當初我學習三層的時候,在網上尋找關於三層的知識,找到了很多例子,但是感覺它們都有些複雜,不太適合剛剛接觸三層的人學習,所以我決定寫一個簡單的三層執行個體,下面言歸正傳。 簡單的三層劃分:
Time of Update: 2018-07-25
模板(template)中typename的使用方法 http://blog.csdn.net/caroline_wendy/article/details/23910709 聲明template參數時, 首碼關鍵字class和typename可以互換; 使用關鍵字typename標識嵌套從屬類型名稱, 但不需在基類列表和成員初始化列表內使用. 從屬名稱(dependent names): 模板(template)內出現的名稱,
Time of Update: 2018-07-25
標頭檔:#include <ctype.h> 定義函數:int toupper(int c); 函數說明:若參數 c 為小寫字母則將該對應的大寫字母返回。 傳回值:返迴轉換後的大寫字母,若不須轉換則將參數c 值返回。 範例:將s 字串內的小寫字母轉換成大寫字母。 純文字新視窗 #include <ctype.h> main(){
Time of Update: 2018-07-25
轉載地址:http://blog.163.com/china_2008ay/blog/static/90142252200961971756712/ 1,寫宏定義:得到一個field在結構體(struct type)中的位移量。 #define OFFSETOF(type, field) ((size_t)&(((type *)0)->field)) 解釋: (type *)0:把0地址當成type類型的指標。 ((type *)0)->field:對應域的變數。 &
Time of Update: 2018-07-25
使用場合:拼接兩個宏,一個是傳入的宏。但是傳入的宏不會被替換,反而原封不動的接了上去,這就尷尬了。經過各種嘗試,居然成了,特此記錄分享一下,方便大家學習。 char A_param=0; char B_pramm=0; //添加宏定義 #define OBJECT A #define DEFINE_(X)
Time of Update: 2018-07-25
下面一段程式中: #include <stdio.h>#include <fcntl.h>#include <utmp.h>#include <unistd.h>#include <time.h>int main(){ struct utmp ut; int fd = open(UTMP_FILE, O_RDONLY); int read_len = sizeof(ut); while
Time of Update: 2018-07-25
之前在做兩個字串的拼接,一般都是用strcat函數, 即使是宏定義的字串。 比如定義了宏A, B, 第一反應會用 A"other"這樣的拼接方式, 卻不會沒反應過來 A B 也可以做拼接。 基礎不紮實,好二好二。 宏字串可以這樣拼接: #define A "xxx"#define B "yyy"void main(){ char* str = A B; printf("str:
Time of Update: 2018-07-25
問題描述: 假設有一條繩子,上面有紅、白、藍三種顏色的旗子,起初繩子上的旗子顏色並沒有順序, 您希望將之分類,並排列為藍、白、紅的順序,要如何移動次數才會最少,注意您只能在繩子上進行這個動作,而且一次只能調換兩個旗子。 演算法解決: 此問題最大的痛點在於使移動次數最少,這樣的話如冒泡排序,歸併排序之類的排序演算法無法使用;其次,在一根繩子上,這一位著我們不能使用其他容器;最後,每次只能移動兩張旗子。
Time of Update: 2018-07-25
前陣子做一個小項目需要寫一些設定檔,但其實需要配置的內容也很少,所以直接用TXT儲存了,現在稍微整理了下TXT讀寫的操作以及代碼,寫成了兩個函數方便之後調用,順手分享到這裡咯~ 建立或開啟TXT並寫入TXT代碼: void 寫入TXT(string 名字, string 內容 ,bool 是否覆蓋) {ofstream 寫入(名字, 是否覆蓋 ? ios::trunc : ios::app);if (寫入.is_open()) {//如果成功的話寫入
Time of Update: 2018-07-25
簡單的c++回呼函數實現辦法: 最近為公司升級schematic編輯器,GUI部分採用QT來實現,為了防止GUI採用的開發庫的變化,決定採用 GUI+Engine的辦法實現,GUI部分用Qt來實現,Engine使用C++來實現作為library,gui運行時連結engine庫。Qt提供signal/slot機制可以提供比回呼函數更方便的通訊方式,此處就不再贅述。此處簡單介紹一下engine和Gui層的回呼函數實現辦法。
Time of Update: 2018-07-25
leetcode 原題連結:https://leetcode.com/problems/single-number-iii/ Given an array of numbers nums, in which exactly two elements appear only once and all the other elements appear exactly twice. Find the two elements that appear only once.
Time of Update: 2018-07-25
當前C++11已經實現了多線程、互斥量、條件變數等非同步處理函數,並且提供了諸如sleep之類的時間函數,所以後面使用C++開發這一塊的時候完全可以實現跨平台,無需在windows下寫一套然後又在linux下寫一套了。 本文用C++11實現了一個簡單的生產者-消費者模式,生產者每1S將一個數值放到雙向隊列中,消費者每2S從雙向隊列中取出資料。 #include "stdafx.h&
Time of Update: 2018-07-25
對於一幅映像,設當前景與背景的分割閾值為 t 時,前景點占映像比例為 w0,均值為 u0,背景點占映像比例為 w1,均值為 u1。則整個映像的均值為 u = w0*u0+w1*u1。建立目標函數g(t)=w0*(u0-u)^2+w1*(u1-u)^2,g(t)就是當分割閾值為t時的類間方差運算式。OTSU演算法使得g(t)取得全域最大值,當g(t)為最大時所對應的t稱為最佳閾值。OTSU演算法又稱為最大類間方差法。
Time of Update: 2018-07-25
本部落格所有原始碼:Github託管項目地址 鏈式雜湊表介紹 鏈式雜湊表從根本上來說是由一組鏈表構成。每個鏈表都可以看作一個“桶”,我們將所有的元素通過散列的方式放到具體的不同的桶中。插入元素時,首先將其鍵傳入一個雜湊函數(此過程稱為雜湊鍵),函數通過散列的方式告知元素屬於哪一個“桶”,然後再相應的鏈表頭插入元素,直到我們發現我們想要尋找的元素。 解決衝突的方法 1. 開放定址法 這種方法也稱再散列法,其基本思想是:當關鍵字key的雜湊地址p=
Time of Update: 2018-07-25
一、前言 以下為C語言實現的類似C++的STL中vector的容器 二、代碼 ////////////cvector.h////////////////////////////////#ifndef VECTOR_H#define VECTOR_H#include <stdlib.h>#include <assert.h>/////////結點存放自己的資料結構//////////typedef struct{char name[10];int id;}
Time of Update: 2018-07-25
鏈表是一種資料結構序列,它通過鏈環串連在一起。鏈環包含不同資料。每個鏈環包含有對其它鏈環的連結。鏈表是除數組之外使用最廣的資料結構,其常見用法樣本如下: #include <stdio.h>#include <string.h>#include <stdlib.h>#include <stdbool.h>struct node{int data; int
Time of Update: 2018-07-25
關於malloc和free的使用: Malloc 格式void malloc(int size) 作用:給指標型變數分配一個size的記憶體空間。
Time of Update: 2018-07-25
title:輸入若干個學生的資訊(包括學號、姓名和成績),輸入學號為0時輸入結束。建立一個單向鏈表,再輸入一個成績值,將成績大於等於該值的學生資訊輸出。 input:3n+2行,每3行為一個學生的資訊,分別為學號,姓名和成績。倒數第二行為0,表示輸入結束。最後一行為一個整數,代表分數。 output:若干行,每三行代表一個學生的資訊。 #include<stdio.h> #include<string.h>
Time of Update: 2018-07-25
#include "stdafx.h"#include "stdio.h"#include <stdlib.h>#include "string.h" typedef int elemType ; /************************************************************************//*