筆記 資料結構高階

2022-08-05 14:09:10 字數 2179 閱讀 3630

資料的存放方式,體現了資料結構

資料結構=資料+結構,結構指儲存、操作、關係。

若用set儲存,則需要用insert插入元素,因為set是一顆紅黑樹。

由於set裡面元素單調,可用\(o(\log)\)二分法查詢,

陣列:連續的一段儲存空間

可\(o(1)\)查詢特定編號的元素,

鍊錶:鏈式結構

若動態指標實現,則可以做到:

struct node;

node *head;

核心**:

head=new node;

r=head;//r是乙個工作指標,也就是「掃瞄頭」

while(cin>>x)

1.動態分配記憶體空間

2.快速插入乙個節點

//在p和q之間插入數值x

node *r=new node;

r->data=x;

r->next=&q;

p.next=r;

若用靜態陣列來描述鍊錶,則用\(data_i\)表示第i個元素的data值,用\(next_i\)表示第i個元素的下乙個元素值

應用:鏈式前向星

struct nodev[nmax];

struct edgee[mmax];

實現:

void add(int u,int v,int w)

棧:filo

應用:進製轉換,括號匹配,中綴表示式轉字尾

\(3*8-(6-2)/(3+4)\) ==> \(3,8,*,6,2,-,3,4,+,/,-\)

\(f(t)=-ce^+\intdt}\) ==>

\(t,f=-c,-k,t,*,exp,*,t,f_e,-k,t,*,exp,*,\int,+\)

表示式壓棧規則:

\(op(v)=\beginpop(),\text(v)

單調棧:

\(op(v)=\beginpop(),v

這樣棧裡的元素就是單調的了。

e.g.histogram

給出乙個柱狀統計圖,他的每乙個專案的寬度是1,高度和具體問題有關,求柱狀圖中最大長方形面積。

即:給定\(\\),求出\(ans=\max\limits_

其中\(h_=\min\limits_\leq}a_\)

int top=0,s[maxn];

int area=0;

for(int i=1;i<=n;i++)

e.g.求最長不下降子串行優化單調棧:\(\text(i,x)=\begin\text(i-1,x),v>s_i\\s_i=v,else\end\)

佇列:fifo

e.g.集合劃分

給定集合\(a=\\)和由01矩陣構成的衝突關係\(r_=\begin0,\text\\1,\text\end\),且\(r_=r_\),\(r_=0,i,j=1,2,...,n\),將\(a\)劃分成\(k\)個互不相交的子集,且對於任意子集\(a_i\)和\(x,y\in\),都有\(r_=0\),求出使得k最小的劃分方案。

分析:申請以下變數:

int r[nmax][nmax];//衝突矩陣

int newr[nmax];//工作陣列

int cq[nmax];//迴圈佇列

int result[nmax];//記錄分組數

int group=1;//記錄總共組數

工作過程:

\((1)\ cq_i\gets\quad newr\gets}\quad result\gets}\)

\((2)\ newr_i\gets}\)

\((3)\ v\gets}\quad cq.\text\)

\(\quad \text(v)=\begin\text(v),\quad r_=1\\newr_i\gets,\quad else\end\)

$(4)\ \mu \ \text\ cq \ \text $

e.g.滑動視窗

筆記 資料結構

解釋經典例題 計算給定多項式在給定點x處的值。f x a0 a1 x a n 1 x n 1 a n x n 方法一 double num int n,double array,double x 改進方法 double num int n,double array,double x clock 捕捉...

學習筆記 資料結構

一 常用的資料結構 1 線性資料結構 元素之間一般存在元素之間存在一對一關係,是最常用的一類資料結構,典型的有 陣列 棧 佇列和線性表 2 樹形結構 結點間具有層次關係,每一層的乙個結點能且只能和上一層的乙個結點相關,但同時可以和下一層的多個結點相關,稱為 一對多 關係,常見型別有 樹 堆 3 圖形...

Python筆記 資料結構

list list是python內建的一種資料型別。list是一種 有序的集合,可以隨時新增和 刪除其中的元素。定義列表的方法就是 例如 classmates michael bob tracy 支援按照索引訪問和刪除 支援在列表尾端插入和刪除 列表中的元素的型別可以不統一 tuple tuple是...