原创 順序表應用學生管理系統

下面是代碼實現: SEQ_LIST.h: #ifndef _DSEQ_LIST_H_ #define _DSEQ_LIST_H_ #define INIT_SIZE 10 typedef struct _STU { int num;

原创 一元多項式相加的鏈式實現

#include"PLOY.h" #include<stdio.h> #include<stdlib.h> #include<assert.h> /

原创 數據結構排序

**data_struct sort**   排序是計算機程序設計中的一種重要操作,它的功能是將一個數據元素(或記錄)的任意序列,重新排列成一個按關鍵字有序的序列。排序分爲內排序和外排序,內排序的待排序序列都在內存中,外排序則不然。

原创 堆排序

堆排序 先看兩個定義: 大根堆,小根堆類似於二叉樹的結構 大根堆:根比左右結點都大 小根堆:根比左右結點都小 堆排序主要是堆調整函數,進行一次堆調整後找到最大或者最小,此後此結點不參與調整,已經排序好了。 然後把555和17交換,555

原创 類和對象階段考試總結

題目一:實現String類中的方法 class String { public: String(char *pstr) { _pstr = new char[strlen(pstr)+1]; strcpy(_pstr,pst

原创 求兩個鏈表的第一個公共子結點

求兩個鏈表的第一個公共結點,注意是單鏈表,一個結點相同,後面結點都相同 思路:兩個鏈表第一個公共結點之後的結點都相同,較長的結點先走,走到兩個鏈表相同長度時, 同時走,當兩鏈表結點相同時,即爲公共結點 另

原创 歸併排序

歸併排序是排序算法中經常使用的算法。 歸併排序思想: 兩個函數MegerSort(int *arr,int left,int right);//遞歸調用此函數,不斷對數組進行劃分,只剩一個元素時,進行歸併,然後兩兩歸併,四四歸併,直到整個

原创 鏈表逆置

單鏈表逆置問題: 1頭插法 2遞歸 具體過程大致圖如下: 代碼實現: #include <iostream> using namespace std; typedef int elemtype; typedef struct List

原创 atoi和itoa的實現

my_atoi:字符串轉整形 實現: 1 ‘0’-‘9’之外的非數字字符的處理 2 int溢出問題 3 注意轉換後int型的正負問題 my_itoa:整形轉字符串 實現: 1  依次取出每個數字 2  轉化成對應字符 3  放入字符數組

原创 數據結構之三元組

三元組s1(a,b,c) 元素類型可自定義 elemtype 下面直接貼代碼 triple.h 頭文件 #ifndef _TRIP_H_ #define _TRIP_H_ #define ERROR -1 //可更改三元組的數據類型 ty

原创 指針和引用比較

首先指針和引用都是地址的概念。 c語言沒有引用,c++有引用,c++11前只有一級引用,c++11之後支持多級引用 引用定義:引用是一個變量的別名,不能爲空,必須初始化,引用初始化的值必須可以取地址,一經引用不能修改。引用的大小是所指向變

原创 c++火柴棒問題

題目: 1.火柴棒問題 用火柴棒擺成的0-9間的數字,橫向由一根火柴構成,縱向都是由兩根火柴構成, 可按如下規則進行變化: 1.數字移動一根火柴棒可變成其它0到9之間合法的數字 2.數字添加一根火柴棒可變成其它0到9之間合法的數字 3.數

原创 指針和數組比較

指針和數組是c語言經常使用的,他們都涉及有地址的概念,指針指向指定類型的變量,數組名代表首元素的地址,&數組名代表整個數組的地址 那麼數組和指針在使用上有什麼不同? 首先:數組名是一個指針常量,不能被修改,指針可指向任意類型的空間,可變換

原创 初學libevent庫

高性能的I/O框架庫libevent linux服務器通常要處理的三類事件:I/O事件,信號,定時器 在處理這些事件時要考慮三個問題: 1 統一事件源 2 可移植性 不同系統使用不同的I/O複用方式 3 多進程/多線程中高併發編程的支持

原创 linux上課隨筆—進程間通信:管道

管道:當從一個進程連接數據流到另一個進程時,使用術語管道.       有名管道       無名管道(pipe) 無名管道特點: 1 只能用於具有血緣關係的進程之間 2 半雙工的通信模式,具有固定的讀端和寫端 3 一種特殊的文件,存在於