資料結構(計財系).

Slides:



Advertisements
Similar presentations
CSCI2100B Linked List Jeffrey
Advertisements

Data Structure Lecture-5
Senem Kumova Metin Spring2009 STACKS AND QUEUES Chapter 10 in A Book on C.
Doubly-linked list library.
Chapter 6 Structures By C. Shing ITEC Dept Radford University.
作業 : list  stack struct node {int info; node* next; }; class list { node *head, *tail ; int node_no ; public: list() ;list(const node& n) ;list(const.
Homework - Chapter 03 Solution.
1 政大公企中心產業人才投資課程 -- 企業決策分析方法 -- 黃智聰 政大公企中心產業人才投資課程 課程名稱:企業決策分析方法 授課老師:黃智聰 授課內容: 企業決策分析之報告結果與計量模型型式 之選擇 參考書目: Hill, C. R., W. E. Griffiths, and G. G. Judge,
1 生物計算期末作業 暨南大學資訊工程系 2003/05/13. 2 compare f1 f2  只比較兩個檔案 f1 與 f2 ,比完後將結果輸出。 compare directory  以兩兩比對的方式,比對一個目錄下所有檔案的相 似程度。  將相似度很高的檔案做成報表輸出,報表中至少要.
Divide-and-Conquer. 什麼是 divide-and-conquer ? Divide 就是把問題分割 Conquer 則是把答案結合起來.
Chapter 10 馬可夫鏈 緒言 如果讀者仔細觀察日常生活中所發生的 諸多事件,必然會發現有些事件的未來 發展或演變與該事件現階段的狀況全然 無關,這種事件稱為獨立試行過程 (process of independent trials) ;而另一些 事件則會受到該事件現階段的狀況影響。
第 10 章 Java 的執行緒 10-1 執行緒的基礎 10-2 Java 執行緒的使用方法 10-3 Java 執行緒的同步 10-4 管道串流的執行緒.
第6章 佇列(Queues) 6-1 佇列的基礎 6-2 佇列的表示法 6-3 環狀佇列 6-4 雙佇列.
On Mathematical Structures for Systems Archetypes 系統基模的數學結構 Rafael E. Bourguet-Díaz Gloria Pérez-Salazar.
Instructor: Ching-Chi Lin 林清池 助理教授
3Com Switch 4500 切VLAN教學.
Implementing Data Structures
1 第一章 Word 的基本觀念 內容概要: Word 的特色 啟動與離開 Word 的方法 滑鼠游標與外型的介紹 基本操作 Word 視窗法則 使用 Word 遭遇問題時, 應如何利用軟體特 性而獲得輔助解說.
1.1 線性方程式系統簡介 1.2 高斯消去法與高斯-喬登消去法 1.3 線性方程式系統的應用(-Skip-)
: Boxes ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 11003: Boxes 解題者:蔡欣燁 解題日期: 2007 年 3 月 19 日.
Lecture 1 The role of Algorithms in Computing. Introduction2 1.1 Algorithms Algorithm: 對一個 computational problem 而言,將 輸入轉換為輸出的一連串計算過程,稱為 Algorithm 。 例如,給你一堆數字<
Graph V(G 1 )={0, 1, 2, 3, 4, 5, 6, 7, 8, 9} E(G 1 )={(0, 2), (0, 3), (1, 4), (2, 3), (2, 5), (2, 6), (3, 6), (3, 7), (4, 7), (5, 6), (5,
STAT0_sampling Random Sampling  母體: Finite population & Infinity population  由一大小為 N 的有限母體中抽出一樣本數為 n 的樣 本,若每一樣本被抽出的機率是一樣的,這樣本稱 為隨機樣本 (random sample)
5.1 Rn上之長度與點積 5.2 內積空間 5.3 單範正交基底:Gram-Schmidt過程 5.4 數學模型與最小平方分析
Structural Equation Modeling Chapter 7 觀察變數路徑分析=路徑分析 觀察變數路徑分析.
JAVA 程式設計與資料結構 第十四章 Linked List. Introduction Linked List 的結構就是將物件排成一列, 有點像是 Array ,但是我們卻無法直接經 由 index 得到其中的物件 在 Linked List 中,每一個點我們稱之為 node ,第一個 node.
MATLAB 程式設計 第 11 章 多維陣列 多維陣列的定義 在 MATLAB 的資料型態中,向量可視為 一維陣列,矩陣可視二維陣列,對於維 度 (Dimensions) 超過 1 的陣列則均可視 為「多維陣列」 (Multidimesional Arrays , 簡稱 N-D Arrays)
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
1 蛋白質簡介 暨南大學資訊工程系 2003/05/06. 2 蛋白質是由 20 種胺基酸所組成.
JAVA 程式設計與資料結構 第十章 GUI Introdution III. File Chooser  File Chooser 是一個選擇檔案的圖形介面, 無論我們是要存檔還是要開啟檔案,使 用這個物件都會讓我們覺得容易且舒適。
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
大綱 單向鏈結串列 環狀串列 雙向鏈結串列 鏈結串列的應用.
聯合大學資工系 周念湘 BCC 數字系統. 聯合大學資工系 周念湘 2 r 進位:轉成 10 進位 r 代表「基底」  10 進位: r = 10  2 進位: r = 2 D r : 表示某個 r 進位的數 (r 不寫,表.
第九章 結構. 結構的宣告 結構 它是由許多不同 ( 或相同 ) 資料型態的變數所組成的 集合,通常利用結構標籤稱呼此集合 struct student { char *name; int score; }; struct 為保留字,表示結構的宣告開始 結構項目需定義於大括號「 { } 」內 結尾需加上分號.
最新計算機概論 第 5 章 系統程式. 5-1 系統程式的類型 作業系統 (OS) : 介於電腦硬體與 應用軟體之間的 程式,除了提供 執行應用軟體的 環境,還負責分 配系統資源。
Introduction to Java Programming Lecture 10 Array I Declaring, Creating, and Initializing Arrays.
© The McGraw-Hill Companies, Inc., 2006© The McGraw-Hill Companies, Inc., 2007 Chapter 7 位址解析通訊協定及 反向位址解析通訊協定.
圖層的操作與管理 圖層的作用就如同一張張透明的賽璐璐片, 你可以將動畫中的每項物件, 放置在不同圖 層中, 圖層交疊就形成完整的畫面。在各圖 層中的物件, 做任何的移動或變化, 都不會 相互干擾, 所以當你編輯一個物件時, 只要 在物件所在的圖層進行操作, 將可大幅降低 製作過程的複雜度與難度。
: War on Weather ★★☆☆☆ 題組: Contest Volumes Archive with Online Judge 題號: 10915: War on Weather 解題者:陳明凱 題意:題目總共會給你 k 個點座標代表殺手衛星的位置, 距離地球表面最少 50 公里以上,並且會給你.
: Happy Number ★ ? 題組: Problem Set Archive with Online Judge 題號: 10591: Happy Number 解題者:陳瀅文 解題日期: 2006 年 6 月 6 日 題意:判斷一個正整數 N 是否為 Happy Number.
: Fast and Easy Data Compressor ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10043: Fast and Easy Data Compressor 解題者:葉貫中 解題日期: 2007 年 3.
3.1 矩陣的行列式 3.2 使用基本運算求行列式 3.3 行列式的性質 3.4 特徵值介紹 3.5 行列式的應用
新功能之旅. Offic 按鈕 快速存取工具列功能區投影片工作區 備忘 稿區投影片 / 大綱 疑難排解.
: Problem A : MiniMice ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11411: Problem A : MiniMice 解題者:李重儀 解題日期: 2008 年 9 月 3 日 題意:簡單的說,題目中每一隻老鼠有一個編號.
大華技術學院九十三學年度 下學期 資工系資料結構教學大綱 吳弘翔. Wu Hung-Hsiang2 科目名稱:資料結構 適用班別:進修部二年級 授課老師:吳弘翔 修別:必修 老師信箱:
第十章 再論結構. 指標與結構的關係 /* File name: ex10-1a.c */ #include int main() { struct student { char *name; int score; }; struct student st= {"Brian", 97}; struct.
Amortized Analysis.
4 堆疊與佇列 4.1 前言 四種基本的資料結構 (可儲存資料的容器) 陣列 (Array)、串列(List): 最基本
: Beautiful Numbers ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11472: Beautiful Numbers 解題者:邱經達 解題日期: 2011 年 5 月 5 日 題意: 若一個 N 進位的數用到該.
第 9 章 TSR 程式基本教練. 本章提要 TSR 程式 以熱鍵 (Hot key) 叫用 TSR 程式 Clock 中斷 int 08h 、 int 1ch DOS reentrant 的問題 有用的 TSR 程式.
: Lucky Number ★★★★☆ 題組: Proble Set Archive with Online Judge 題號: 10909: Lucky Number 解題者:李育賢 解題日期: 2008 年 4 月 25 日 題意:給一個奇數數列 1,3,5,7,9,11,13,15…
第 17 章 樣板 17-1 樣板的基礎 17-1 樣板的基礎 17-2 樣板函數 17-2 樣板函數 17-3 樣板類別 17-3 樣板類別 17-4 非型態參數的樣板類別 17-4 非型態參數的樣板類別 17-5 樣板類別的繼承 17-5 樣板類別的繼承 17-6 特化樣板與靜態成員 17-6 特化樣板與靜態成員.
Chapter 10 m-way 搜尋樹與B-Tree
本章重點 2-1 有序串列(Ordered List) 2-2 介紹陣列(array) 2-3 矩陣(matrix)的應用
: Dream ★★★☆☆ 題組: Contest Archive with Online Judge 題號: 11414: Dream 解題者:李育賢 解題日期: 2008 年 9 月 2 日 題意: 題目會給你一個數字代表測資的數量 ( 最多 100 組 ) , 每組測資第一個數字是此圖形點的個數.
中序轉後序 藉由由左向右掃瞄中序運算式產生後序運算式,遇到 運算元就直接輸出,遇到運算符號則先存入堆疊,將 優先權較高者輸出。 範例: a + b * c TokenStack [0] [1] [2] topoutput aa ++0a b+0ab *+ *1ab c+ *1abc eosabc*+
Miscellanea Switch Bitwise operations ?,. break; continue; (example) (example) do { a = getc(stdin); if (a=='q') break; else if (a=='c') continue; n++;
資料結構實習-六.
: Finding Paths in Grid ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11486: Finding Paths in Grid 解題者:李重儀 解題日期: 2008 年 10 月 14 日 題意:給一個 7 個 column.
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
Introduction to C Language ─ C 語言的基本概念. 大綱 C 編譯器簡介 Turbo C++ 的安裝與操作介紹 如何編寫 C 語言程式 輸出與輸入函數 Homework 資料參考網站.
Josephus Problem: Build the Circular Linked List
STRUCTURE 為一種複合式的資料型態,可用來把相關的資料組織 成為有意義的資料單元。 名片: name age tel namecard : char name[10]; int age; char tel[10] char [60]
朝陽科技大學資管系 李麗華 第四章 鏈結串列 Linked List Fools look to tomorrow, wise men use tonight.
節能轉接插座 認知科學研究所陳啟彰. 設計緣起 不使用的電器如未將插頭拔除, 仍會有少量的電力損耗,這類的 電力損耗稱之為待機損耗 (stand- by loss) 。 不使用的電器如未將插頭拔除, 仍會有少量的電力損耗,這類的 電力損耗稱之為待機損耗 (stand- by loss) 。 家庭用電中,待機損耗約佔總耗.
Amortized Analysis. p2. Amortized analysis: Guarantees the avg. performance of each operation in the worst case. Aggregate method Accounting method Potential.
One implementation of the LIST ADT Insert new node before current and new node becomes current (assume new node created) node newNode = new node; head.
Doubly linked lists Idea: same as singly linked list, but each node also points to the previous: Can optionally also have a pointer to the tail, so we.
ADT list.
Presentation transcript:

資料結構(計財系)

鏈結串列 簡介 應用 變形 堆疊、佇列 多項式 /*稀疏矩陣*/ 環狀鏈結串列(circular linked list) 雙向鏈結串列(doubly linked list)

用鏈結串列表示堆疊 struct STACK_NODE { int val ; struct STACK_NODE * next ; } ; struct STACK_NODE * top ; data data int stack_empty () {     return top == NULL ; } data data top

用鏈結串列表示堆疊 struct STACK_NODE { int val ; struct STACK_NODE * next ; } ; struct STACK_NODE * top ; data top data void push ( int val ) {     struct STACK_NODE * new_node ;     new_node = malloc(sizeof(struct STACK_NODE));     new_node->val = val ;     new_node->next = top ;     top = new_node ; } data data

用鏈結串列表示堆疊 struct STACK_NODE { int val ; struct STACK_NODE * next ; } ; struct STACK_NODE * top ; data top data int pop () {     int val = -1 ;     struct STACK_NODE * tmp ;     if ( !stack_empty() ) {         val = top->val ;         tmp = top ;         top = top->next ;         free ( tmp ) ;     } else         printf ( "Error: stack empty\n" ) ;     return val ; } data data

用鏈結串列表示佇列 struct QUEUE_NODE { int val ; struct QUEUE_NODE * next ; } ; struct QUEUE_NODE * head ; struct QUEUE_NODE * tail ; 用鏈結串列表示佇列 data data int queue_empty () {     return head == NULL ; } data data head tail

用鏈結串列表示佇列 struct QUEUE_NODE { int val ; struct QUEUE_NODE * next ; } ; struct QUEUE_NODE * head ; struct QUEUE_NODE * tail ; 用鏈結串列表示佇列 data head tail void enqueue ( int val ) {     struct QUEUE_NODE * new_node ;     new_node = malloc ( sizeof ( struct QUEUE_NODE ) ) ;     new_node->val = val ;     new_node->next = NULL ;     if ( !queue_empty() )         tail->next = new_node ;     else         head = new_node ;     tail = new_node ; }

用鏈結串列表示佇列 struct QUEUE_NODE { int val ; struct QUEUE_NODE * next ; } ; struct QUEUE_NODE * head ; struct QUEUE_NODE * tail ; 用鏈結串列表示佇列 data head tail int dequeue () {     int val = -1 ;     struct QUEUE_NODE * tmp ;     if ( !queue_empty() ) {         val = head->val ;         tmp = head ;         head = head->next ;         free ( tmp ) ;     }     else         printf ( "Error: queue empty\n" ) ;     return val ; }

用鏈結串列表示多項式 a = 3x14 + 2x8 + 1 struct POLY_NODE { int coef ;     int expon ;     struct POLY_NODE * next ; } ; struct POLY_NODE * a ; coef expon a = 3x14 + 2x8 + 1 3 14 2 8 1 a

變形:環狀鏈結串列 3 14 2 8 1 a

變形:雙向鏈結串列 這樣就可以解決上節投影片所述,delete只能刪除下一個Node的問題。 struct NODE {     int data ;     //char name[64] ;     //double ... ;     struct NODE * next ;     struct NODE * prev ; } ; head 這樣就可以解決上節投影片所述,delete只能刪除下一個Node的問題。

變形:雙向鏈結串列 1. 假設 node 是要被刪除的人 2 3 4 head node 1. 假設 node 是要被刪除的人 2. node->prev->next = node->next ; 3. node->next->prev = node->prev ; 4. Free ( node ) ;