一 數據結構與算法的區別:java
數據結構指的是每一個數據個體的存儲+個體關係的存儲,而算法指的是存儲數據時對數據的操做算法
二 程序:數組
指的是數據的存儲+數據的操做以及能夠被計算機執行的語言數據結構
三 堆內存與棧內存的區別函數
棧內存以壓棧出棧的方式分配內存,符合先進後出原則,好比函數調用spa
堆內存以堆排序的方式分配內存,符合優先隊列的原則,第一個元素有最高優先權指針
四 靜態內存與動態內存的區別排序
靜態內存是棧中分配的,屬於局部變量,好比int i,j遞歸
動態內存是堆中分配的,好比malloc,i=5後半部分隊列
五 靜態棧與動態棧的區別
靜態棧中元素間是連續的 ,相似數組,因此用的少
動態棧中元素是不連續的,相似鏈表,因此用的多
六 c與java中,int等數據類型各佔多少空間
java c
byte 1字節 1
short 2字節 2
int 4字節 2(TC)/4(VC)
long 8字節 4字節
char 2字節 1
float 4字節 4
double 8字節 8
boolean 1字節 1
七 指針
int * p=&i,好比在內存塊中分配了一塊地址(編號爲000H)給i,裏面存放的i的值,int * p則表示分配一塊內存地址,裏面存放的是指針類型,這個指針指向的地址中存放的值的類型int
對於數組:a<==>&a[0]
a[i]<==>*(a+i)
a[i]也能夠表示爲i[a]
pArry->pBase,表示pArry這個指針變量 所指向的結構體變量中pBase變量
八 遞歸條件以及優缺點
條件:
1.遞歸中必須有一個明確的終止條件
2.該函數的數據規模必須離終止條件愈來愈近
3.這個轉化必須是可解的
4.能夠將每一個事件概括到不一樣case中執行
優缺點:
1.易於理解
2.速度慢
3.存儲空間大、、調用要發送實參、返回地址、爲被調函數分配內存空間
九 邏輯結構的分類:
線性與非線性
線性有:數組、鏈表
非線性又包括離散集合、圖、數