棧和佇列(不定時更新)

2022-05-09 08:42:14 字數 1192 閱讀 9149

棧的建立,入棧,列印棧內資料

#include #include typedef int stackelementtype;

typedef struct node

linkstacknode;

typedef linkstacknode *linkstack;

void initstack(linkstack *s)

void push(linkstack *s)

s1->data = x;

s1->next = null;

s2->next = s1;

}while(1)

s1->data = x;

s1->next = s2->next;

s2->next = s1;}}

void print(linkstack *s)

}int main()

//建立佇列並且進行初始化

#include #include typedef int queueelementtype;

typedef struct node

linkqueuenode;

typedef struct

linkqueue;

int initqueue(linkqueue *q)

q1->data = x;

q1->next = null;

q2->front = q1;

q2->rear = q1;

while(1) }

void print(linkqueue *q)

return ;

}int main()

棧區(stack區):由編譯器建立和釋放,存放函式的引數值,區域性變數值,起操作方式類似於資料結構中的棧。

堆區(heap):由程式設計師建立和釋放,若程式設計師不釋放,則由作業系統收回。

全域性區:全域性變數和靜態變數是儲存在一起的。

棧:只要剩餘棧的空間大於申請棧的空間,系統則為程式提供記憶體,否則,將報異常棧溢位。

堆:作業系統有乙個記錄空閒記憶體位址的鍊錶,當系統收到程式申請時,會遍歷該鍊錶,尋找第乙個空間大於所申請的堆節點,然後將該節點從堆節點中刪除,並將該節點分配給程式,大多數作業系統會在這塊記憶體空間的首位址記錄本次分配的大小,這樣**的delete 語句才能正確的釋放本記憶體空間。

Frameworks 不定時更新

ios4.0引入了accelerate框架,該框架的介面可用於執行數學 大數字以及dsp運算。和開發者個人編寫的庫相比,該礦建的優點在於它根據現存的各種ios裝置的硬體配置進行過優化。因此,只需一次編碼就可以確保它所有裝置高效執行。accounts 框架給某乙個使用者賬戶提供乙個單一的登入模型。單一...

排序演算法(不定時更新 )

插入排序 插入排序 初始時,拿第二個和第乙個比較,如果第二個小於第乙個,兩個交換 當進行到第n次時,前面的n 1個順序應該是正確的 拿第n個和前面的n 1個數比較,如果第m個小於n,m 1大於n,則把n插到m和m 1中間 相當於將n和前乙個數比較,如果前乙個數大於n,則把前乙個移動到n的位置上,內層...

JDBC總結(不定時更新)

那些名詞 jdbc配置 註冊驅動器類 解壓jar包可以找到driver.class其路徑即是名字 法一 class.forname com.mysql.jdbc.driver 法二 system.setproperty jdbc.drivers com.mysql.jdbc.driver mysql...