From 788148397ff19d82a1846bf63debe2da805944d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E7=83=A8?= Date: Mon, 13 Dec 2021 17:31:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=A5=E7=89=88=E6=95=99=E6=9D=90PPT&?= =?UTF-8?q?=E8=AF=BE=E5=90=8E=E7=AD=94=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- æ•°æ�®ç»“æž„/README.md | 2 +- .../æ•°æ�®ç»“构实验1å¿…å�šéƒ¨åˆ†OJ版-é…�套实验.pdf | Bin 0 -> 528949 bytes .../第2ç« /2.1-2.5/2.1-2.5.cpp | 171 +++++++++++++ .../第2ç« /2.1-2.5/book.txt | 17 ++ .../第2ç« /2.13-2.14/2.13-2.14.cpp | 189 ++++++++++++++ .../第2ç« /2.13-2.14/book.txt | 17 ++ .../第2ç« /2.15(链表)/2.15(链表).cpp | 109 ++++++++ .../第2ç« /2.15(链表)/ListA.txt | 1 + .../第2ç« /2.15(链表)/ListB.txt | 1 + .../第2ç« /2.15(顺åº�表)/2.15(顺åº�表).cpp | 100 ++++++++ .../第2ç« /2.15(顺åº�表)/ListA.txt | 1 + .../第2ç« /2.15(顺åº�表)/ListB.txt | 1 + .../第2ç« /2.16/2.16.cpp | 93 +++++++ .../第2ç« /2.16/ListA.txt | 1 + .../第2ç« /2.16/ListB.txt | 1 + .../第2ç« /2.17/2.17.cpp | 104 ++++++++ .../第2ç« /2.17/ListA.txt | 1 + .../第2ç« /2.17/ListB.txt | 1 + .../第2ç« /2.18-2.19/2.18-2.19.cpp | 124 +++++++++ .../第2ç« /2.18-2.19/PolyA.txt | 5 + .../第2ç« /2.18-2.19/PolyB.txt | 4 + .../第2ç« /2.6-2.12/2.6-2.12.cpp | 227 ++++++++++++++++ .../第2ç« /2.6-2.12/book.txt | 17 ++ .../第3ç« /3.1-3.4/3.1-3.4.cpp | 117 +++++++++ .../第3ç« /3.1-3.4/SqStack.txt | 4 + .../第3ç« /3.10/3.10.cpp | 16 ++ .../第3ç« /3.10/3.10.h | 20 ++ .../第3ç« /3.11-3.15/3.11-3.15.cpp | 123 +++++++++ .../第3ç« /3.11-3.15/QNode.txt | 4 + .../第3ç« /3.16-3.19/3.16-3.19.cpp | 126 +++++++++ .../第3ç« /3.16-3.19/QNode.txt | 4 + .../第3ç« /3.20/3.20.cpp | 69 +++++ .../第3ç« /3.21/3.21.cpp | 96 +++++++ .../第3ç« /3.22/3.22.cpp | 29 +++ .../第3ç« /3.22/3.22.h | 117 +++++++++ .../第3ç« /3.23/3.23.cpp | 18 ++ .../第3ç« /3.23/3.23.h | 89 +++++++ .../第3ç« /3.23/DancePartner.txt | 18 ++ .../第3ç« /3.5-3.8/3.5-3.8.cpp | 115 +++++++++ .../第3ç« /3.5-3.8/SqStack.txt | 4 + .../第3ç« /3.9/3.9.cpp | 53 ++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第4ç« /4.1.cpp | 60 +++++ .../第4ç« /4.2-4.3.cpp | 69 +++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第4ç« /4.4.cpp | 72 ++++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第4ç« /4.5/1.cpp | 69 +++++ .../第4ç« /4.5/病毒感染检测输入数æ�®.txt | 12 + .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.1.cpp | 39 +++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.10.cpp | 69 +++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.11.cpp | 105 ++++++++ .../第5ç« /5.12-5.13.cpp | 201 +++++++++++++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.2.cpp | 97 +++++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.3.cpp | 44 ++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.4.cpp | 62 +++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.5.cpp | 47 ++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.6.cpp | 41 +++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.7.cpp | 66 +++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.8.cpp | 85 ++++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.9.cpp | 108 ++++++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.1.cpp | 84 ++++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.10.cpp | 135 ++++++++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.11.cpp | 111 ++++++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.12.cpp | 186 ++++++++++++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.13.cpp | 242 ++++++++++++++++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.14.cpp | 143 +++++++++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.2.cpp | 103 ++++++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.3.cpp | 114 +++++++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.4.cpp | 105 ++++++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.5.cpp | 116 +++++++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.6.cpp | 117 +++++++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.7.cpp | 163 ++++++++++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.8.cpp | 115 +++++++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.9.cpp | 125 +++++++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第7ç« /7.1.cpp | 67 +++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第7ç« /7.10.cpp | 58 +++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第7ç« /7.2.cpp | 66 +++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第7ç« /7.3.cpp | 77 ++++++ .../第7ç« /7.4-7.7.cpp | 134 ++++++++++ .../第7ç« /7.8-7.9.cpp | 214 ++++++++++++++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第8ç« /8.1.cpp | 65 +++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第8ç« /8.10.cpp | 59 +++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第8ç« /8.11.cpp | 88 +++++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第8ç« /8.12.cpp | 173 +++++++++++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第8ç« /8.2.cpp | 69 +++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第8ç« /8.3.cpp | 82 ++++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第8ç« /8.4.cpp | 70 +++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第8ç« /8.5.cpp | 89 +++++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第8ç« /8.6.cpp | 65 +++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第8ç« /8.7.cpp | 64 +++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第8ç« /8.8.cpp | 75 ++++++ .../æ•°æ�®ç»“构第2版-书中算法(C语言版)/第8ç« /8.9.cpp | 90 +++++++ 91 files changed, 6919 insertions(+), 2 deletions(-) create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构实验1å¿…å�šéƒ¨åˆ†OJ版-é…�套实验.pdf create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.1-2.5/2.1-2.5.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.1-2.5/book.txt create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.13-2.14/2.13-2.14.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.13-2.14/book.txt create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.15(链表)/2.15(链表).cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.15(链表)/ListA.txt create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.15(链表)/ListB.txt create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.15(顺åº�表)/2.15(顺åº�表).cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.15(顺åº�表)/ListA.txt create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.15(顺åº�表)/ListB.txt create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.16/2.16.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.16/ListA.txt create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.16/ListB.txt create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.17/2.17.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.17/ListA.txt create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.17/ListB.txt create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.18-2.19/2.18-2.19.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.18-2.19/PolyA.txt create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.18-2.19/PolyB.txt create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.6-2.12/2.6-2.12.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.6-2.12/book.txt create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.1-3.4/3.1-3.4.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.1-3.4/SqStack.txt create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.10/3.10.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.10/3.10.h create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.11-3.15/3.11-3.15.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.11-3.15/QNode.txt create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.16-3.19/3.16-3.19.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.16-3.19/QNode.txt create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.20/3.20.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.21/3.21.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.22/3.22.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.22/3.22.h create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.23/3.23.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.23/3.23.h create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.23/DancePartner.txt create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.5-3.8/3.5-3.8.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.5-3.8/SqStack.txt create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.9/3.9.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第4ç« /4.1.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第4ç« /4.2-4.3.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第4ç« /4.4.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第4ç« /4.5/1.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第4ç« /4.5/病毒感染检测输入数æ�®.txt create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.1.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.10.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.11.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.12-5.13.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.2.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.3.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.4.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.5.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.6.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.7.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.8.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.9.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.1.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.10.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.11.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.12.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.13.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.14.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.2.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.3.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.4.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.5.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.6.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.7.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.8.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.9.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第7ç« /7.1.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第7ç« /7.10.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第7ç« /7.2.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第7ç« /7.3.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第7ç« /7.4-7.7.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第7ç« /7.8-7.9.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第8ç« /8.1.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第8ç« /8.10.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第8ç« /8.11.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第8ç« /8.12.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第8ç« /8.2.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第8ç« /8.3.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第8ç« /8.4.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第8ç« /8.5.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第8ç« /8.6.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第8ç« /8.7.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第8ç« /8.8.cpp create mode 100644 æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第8ç« /8.9.cpp diff --git a/README.md b/README.md index 5b0ef81..bb0b515 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ - [`DataStructure`**(数æ�®ç»“构)**](æ•°æ�®ç»“æž„/) - [x] æ•°æ�®ç»“æž„1800题 - [ ] æ•°æ�®ç»“æž„1800题分题目详解 - - [x] 严版教æ��PPT&课å�Žä¹ é¢˜ç­”案 + - [x] 严版教æ��PPT&课å�Žä¹ é¢˜ç­”案&书中算法 - [x] 王é�“考研数æ�®ç»“æž„PPT - [x] 冒泡排åº� - [x] 王é�“æ•°æ�®ç»“æž„æ€�维导图 diff --git a/æ•°æ�®ç»“æž„/README.md b/æ•°æ�®ç»“æž„/README.md index b0f409b..c826131 100644 --- a/æ•°æ�®ç»“æž„/README.md +++ b/æ•°æ�®ç»“æž„/README.md @@ -1,7 +1,7 @@ - [x] æ•°æ�®ç»“æž„1800题 - [ ] æ•°æ�®ç»“æž„1800题分题目详解 - [x] 王é�“æ•°æ�®ç»“构课件 -- [x] 严版教æ��PPT&课å�Žä¹ é¢˜ç­”案 +- [x] 严版教æ��PPT&课å�Žä¹ é¢˜ç­”案&书中算法 - [x] 冒泡排åº� - [x] 王é�“æ•°æ�®ç»“æž„æ€�维导图 - [x] æ—¶é—´å¤�æ�‚度 diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构实验1å¿…å�šéƒ¨åˆ†OJ版-é…�套实验.pdf b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构实验1å¿…å�šéƒ¨åˆ†OJ版-é…�套实验.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ab0e3ac5f336c6004f08f14c3aaab1e50c416dd2 GIT binary patch literal 528949 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⪼F$VFJ>h9s!E#8BD(jIa?I#C*cBdg8Y!Iau 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%0DT83^8v`sf=u&YgL68MWa#W)lB2OezvyR z>Vmyx>o8nz%Y`0fHybc6gB+}Qe#Ni=R%_*RYK|?aso4@aK3D3x@v|Vddw=F+MfmB- z(2Xqm+aDJ>i~Qt?4NpH)s!5fQa^lbZmGY0umz7gsRSP3O=NbD|Wxv-G?rDoLB+$Xa zdE@KJ3X%;NPJb|6JUJjh2c*>=#8PJra;QggncLYjhmVItn9!=Ds?NeP4D{bS(LIaQ zV==1c{Emw2x}jo?1a=#BQAb6IMi9mtv+Ag+iq2c#Pb)v{)2>|ju4x;u51633riy10 z$Fnq@bJtra;Lb?6!egf33whk$8FagH#^!VX1uW~EfD4KW{WnELkw_zvct*-MOolMf zBr*v2JY%e(KccERs_Lw;U2sWxF-q3KU!E}Y^X_RswT&md;Qufd7Bo$@+)i_T)z_j+ z71^*=2ig9G@(s9G0c&WE+?txIL10u^6=WY9@l>|nSh(4$gIwC<1*{-+%hF(GEGC2ff?kmf>HqS#sH;{+Wmwr%x-oQiJjQ zSvH1}FH5dOh-T>$%O%Zq&VPgx(#-JJp4$QXCt8 zc6W9n@^AX`@8I(G{eP{h?*68$s@_n|^ApsCS#6y%T~l@TRaf2Tn_}yI`}ee3JHeb! zYDD+zu%?b}-fL(SY1jxZ7fh_(1kXT7=)mt{ zlijkBPQGN+ny+2OGZT5kS!4QztJtICps!v&Q+z zF?5r=dC*%MR_`B_uPgFgW$V+S+!ip2QHR4wkm|Z)I@6WyW&R4B(sV4aFyPicW7Er5+3qy53h#9xZ&z7063)(>26aSNI8wNMsM2^LI?k^#>egovQp=>GLQDmG@?5Mld z*_xZP2X4KEuegF9u;AM&$Oy^(OG-r#b}2Xt4YR2u*w7 z74$rWBCMxsu_!e3Vlbi&nArUlxEfv5M_=}B5G;2h+Y}~gm^RtuwozTyEw1Tmt$f`G zXlUGz*$!r>cXlKi5zl=``M≈4vYV(m)TA#PtQ|dC<)1gbqAH+&ePFDL{#0nAp`M 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

CCL-MbtWL~ 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

n>hn^{TT%-aO}83 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 z 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


mk8RaH}6R#VkXHCN433)CXDM6FTl)h4xBZB;we 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
9cY>_MHk=be- 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

Zl2q^l`R6yagDbt#uv!R-c~{jKznj$ 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 z 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 P?0 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 BJjnn6 literal 0 HcmV?d00001 diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.1-2.5/2.1-2.5.cpp b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.1-2.5/2.1-2.5.cpp new file mode 100644 index 0000000..de21bef --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.1-2.5/2.1-2.5.cpp @@ -0,0 +1,171 @@ +#include +#include +#include +#include +using namespace std; +#define OK 1 +#define ERROR 0 +#define OVERFLOW -2 +typedef int Status; //Status ÊǺ¯Êý·µ»ØÖµÀàÐÍ£¬ÆäÖµÊǺ¯Êý½á¹û״̬´úÂë¡£ +typedef int ElemType; //ElemType Ϊ¿É¶¨ÒåµÄÊý¾ÝÀàÐÍ£¬´ËÉèΪintÀàÐÍ + +#define MAXSIZE 100 //˳Ðò±í¿ÉÄÜ´ïµ½µÄ×î´ó³¤¶È +struct Book { + string id;//ISBN + string name;//ÊéÃû + double price;//¶¨¼Û +}; +typedef struct { + Book *elem; //´æ´¢¿Õ¼äµÄ»ùµØÖ· + int length; //µ±Ç°³¤¶È +} SqList; + +Status InitList_Sq(SqList &L) { //Ëã·¨2.1 ˳Ðò±íµÄ³õʼ»¯ + //¹¹ÔìÒ»¸ö¿ÕµÄ˳Ðò±íL + L.elem = new Book[MAXSIZE]; //Ϊ˳Ðò±í·ÖÅäÒ»¸ö´óСΪMAXSIZEµÄÊý×é¿Õ¼ä + if (!L.elem) + exit(OVERFLOW); //´æ´¢·ÖÅäʧ°ÜÍ˳ö + L.length = 0; //¿Õ±í³¤¶ÈΪ0 + return OK; +} + +Status GetElem(SqList L, int i, Book &e) {//Ëã·¨2.2¡¡Ë³Ðò±íµÄȡֵ + if (i < 1 || i > L.length) + return ERROR; //ÅжÏiÖµÊÇ·ñºÏÀí£¬Èô²»ºÏÀí£¬·µ»ØERROR + e = L.elem[i - 1]; //elem[i-1]µ¥Ôª´æ´¢µÚi¸öÊý¾ÝÔªËØ + return OK; +} + +int LocateElem_Sq(SqList L, double e) { //Ëã·¨2.3 ˳Ðò±íµÄ²éÕÒ + //˳Ðò±íµÄ²éÕÒ + for (int i = 0; i < L.length; i++) + if (L.elem[i].price == e) + return i + 1;//²éÕҳɹ¦£¬·µ»ØÐòºÅi+1 + return 0;//²éÕÒʧ°Ü£¬·µ»Ø0 +} + +Status ListInsert_Sq(SqList &L, int i, Book e) { //Ëã·¨2.4 ˳Ðò±íµÄ²åÈë + //ÔÚ˳Ðò±íLÖеÚi¸öλÖÃ֮ǰ²åÈëеÄÔªËØe + //iÖµµÄºÏ·¨·¶Î§ÊÇ1<=i<=L.length+1 + if ((i < 1) || (i > L.length + 1)) + return ERROR; //iÖµ²»ºÏ·¨ + if (L.length == MAXSIZE) + return ERROR; //µ±Ç°´æ´¢¿Õ¼äÒÑÂú + for (int j = L.length - 1; j >= i - 1; j--) + L.elem[j + 1] = L.elem[j]; //²åÈëλÖü°Ö®ºóµÄÔªËØºóÒÆ + L.elem[i - 1] = e; //½«ÐÂÔªËØe·ÅÈëµÚi¸öλÖà + ++L.length; //±í³¤Ôö1 + return OK; +} + +Status ListDelete_Sq(SqList &L, int i) { //Ëã·¨2.5 ˳Ðò±íµÄɾ³ý + //ÔÚ˳Ðò±íLÖÐɾ³ýµÚi¸öÔªËØ£¬²¢ÓÃe·µ»ØÆäÖµ + //iÖµµÄºÏ·¨·¶Î§ÊÇ1<=i<=L.length + if ((i < 1) || (i > L.length)) + return ERROR; //iÖµ²»ºÏ·¨ + for (int j = i; j <= L.length; j++) + L.elem[j - 1] = L.elem[j]; //±»É¾³ýÔªËØÖ®ºóµÄÔªËØÇ°ÒÆ + --L.length; //±í³¤¼õ1 + return OK; +} + +int main() { + SqList L; + int i = 0, temp, a, c, choose; + double price; + Book e; + string head_1, head_2, head_3; + cout << "1. ½¨Á¢\n"; + cout << "2. ÊäÈë\n"; + cout << "3. ȡֵ\n"; + cout << "4. ²éÕÒ\n"; + cout << "5. ²åÈë\n"; + cout << "6. ɾ³ý\n"; + cout << "7. Êä³ö\n"; + cout << "0. Í˳ö\n\n"; + + choose = -1; + while (choose != 0) { + cout << "ÇëÑ¡Ôñ:"; + cin >> choose; + switch (choose) { + case 1://´´½¨Ë³Ðò±í + if (InitList_Sq(L)) + cout << "³É¹¦½¨Á¢Ë³Ðò±í\n\n"; + else + cout << "˳Ðò±í½¨Á¢Ê§°Ü\n\n"; + break; + case 2: {//˳Ðò±íÐÅÏ¢ÊäÈë + i = 0; + L.elem = new Book[MAXSIZE]; + if (!L.elem) + exit(OVERFLOW); + L.length = 0; + fstream file; + file.open("book.txt"); + if (!file) { + cout << "´íÎó£¡Î´ÕÒµ½Îļþ£¡" << endl; + exit(ERROR); + } + file >> head_1 >> head_2 >> head_3; + while (!file.eof()) { + file >> L.elem[i].id >> L.elem[i].name >> L.elem[i].price; + i++; + } + cout << "ÊäÈë book.txt ÐÅÏ¢Íê±Ï\n\n"; + L.length = i; + file.close(); + } + break; + case 3://˳Ðò±íµÄȡֵ + cout << "ÇëÊäÈëÒ»¸öλÖÃÓÃÀ´È¡Öµ£º\n"; + cin >> i; + temp = GetElem(L, i, e); + if (temp != 0) { + cout << "²éÕҳɹ¦\n"; + cout << "µÚ" << i << "±¾Í¼ÊéµÄÐÅÏ¢ÊÇ£º\n"; + cout << left << setw(15) << e.id << "\t" << left << setw(50) + << e.name << "\t" << left << setw(5) << e.price << endl + << endl; + } else + cout << "²éÕÒʧ°Ü£¡Î»Öó¬³ö·¶Î§\n\n"; + break; + case 4: //˳Ðò±íµÄ²éÕÒ + cout << "ÇëÊäÈëËùÒª²éÕÒ¼Û¸ñ:"; + cin >> price; + temp = LocateElem_Sq(L, price); + if (temp != 0) { + cout << "²éÕҳɹ¦\n"; + cout << "¸Ã¼Û¸ñ¶ÔÓ¦µÄÊéÃûΪ£º" << L.elem[temp - 1].name << endl << endl; + } else + cout << "²éÕÒʧ°Ü£¡Ã»ÓÐÕâ¸ö¼Û¸ñ¶ÔÓ¦µÄÊé¼®\n\n"; + break; + case 5: //˳Ðò±íµÄ²åÈë + cout << "ÇëÊäÈë²åÈëµÄλÖúÍÊé±¾ÐÅÏ¢£¬°üÀ¨£º±àºÅ ÊéÃû ¼Û¸ñ£¨Óÿոñ¸ô¿ª£©:"; + cin >> a; + cin >> e.id >> e.name >> e.price; //ÊäÈëaºÍb£¬a´ú±í²åÈëµÄλÖã¬b´ú±í²åÈëµÄÊýÖµ£¨Êé±¾ÐÅÏ¢£© + if (ListInsert_Sq(L, a, e)) + cout << "²åÈë³É¹¦.\n\n"; + else + cout << "²åÈëʧ°Ü.\n\n"; + break; + case 6: //˳Ðò±íµÄɾ³ý + cout << "ÇëÊäÈëËùҪɾ³ýµÄÊé¼®µÄλÖÃ:"; + cin >> c; + if (ListDelete_Sq(L, c)) + cout << "ɾ³ý³É¹¦.\n\n"; + else + cout << "ɾ³ýʧ°Ü.\n\n"; + break; + case 7: //˳Ðò±íµÄÊä³ö + cout << "µ±Ç°Í¼ÊéϵͳÐÅÏ¢£¨Ë³Ðò±í£©¶Á³ö:\n"; + for (i = 0; i < L.length; i++) + cout << left << setw(15) << L.elem[i].id << "\t" << left + << setw(50) << L.elem[i].name << "\t" << left + << setw(5) << L.elem[i].price << endl; + cout << endl; + break; + } + } + return 0; +} \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.1-2.5/book.txt b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.1-2.5/book.txt new file mode 100644 index 0000000..3701fc8 --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.1-2.5/book.txt @@ -0,0 +1,17 @@ +ISBN ÊéÃû ¶¨¼Û +9787302257646 ³ÌÐòÉè¼Æ»ù´¡ 25 +9787302219972 µ¥Æ¬»ú¼¼Êõ¼°Ó¦Óà 32 +9787302203513 ±àÒëÔ­Àí 46 +9787811234923 »ã±àÓïÑÔ³ÌÐòÉè¼Æ½Ì³Ì 21 +9787512100831 ¼ÆËã»ú²Ù×÷ϵͳ 17 +9787302265436 ¼ÆËã»úµ¼ÂÛʵÑéÖ¸µ¼ 18 +9787302180630 ʵÓÃÊý¾Ý½á¹¹ 29 +9787302225065 Êý¾Ý½á¹¹£¨CÓïÑ԰棩 38 +9787302171676 C#ÃæÏò¶ÔÏó³ÌÐòÉè¼Æ 39 +9787302250692 CÓïÑÔ³ÌÐòÉè¼Æ 42 +9787302150664 Êý¾Ý¿âÔ­Àí 35 +9787302260806 Java±à³ÌÓëʵ¼ù 56 +9787302252887 Java³ÌÐòÉè¼ÆÓëÓ¦ÓÃ½Ì³Ì 39 +9787302198505 ǶÈëʽ²Ù×÷ϵͳ¼°±à³Ì 25 +9787302169666 Èí¼þ²âÊÔ 24 +9787811231557 Eclipse»ù´¡ÓëÓ¦Óà 35 \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.13-2.14/2.13-2.14.cpp b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.13-2.14/2.13-2.14.cpp new file mode 100644 index 0000000..f830fad --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.13-2.14/2.13-2.14.cpp @@ -0,0 +1,189 @@ +#include +#include +#include +#include +using namespace std; + +#define OK 1 +#define ERROR 0 +#define OVERFLOW -2 +typedef int Status; //Status ÊǺ¯Êý·µ»ØÖµÀàÐÍ£¬ÆäÖµÊǺ¯Êý½á¹û״̬´úÂë¡£ +typedef int ElemType; //ElemType Ϊ¿É¶¨ÒåµÄÊý¾ÝÀàÐÍ£¬´ËÉèΪintÀàÐÍ + +struct Book { + string id;//ISBN + string name;//ÊéÃû + double price;//¶¨¼Û +}; +typedef struct DuLNode { + Book data; //Êý¾ÝÓò + struct DuLNode *prior; //Ö±½ÓǰÇý + struct DuLNode *next; //Ö±½Óºó¼Ì +} DuLNode, *DuLinkList; + +string head_1, head_2, head_3; +int length; + +Status InitDuList_L(DuLinkList &L) { + //¹¹ÔìÒ»¸ö¿ÕµÄË«ÏòÁ´±íL + L = new DuLNode; //Éú³Éнáµã×÷Ϊͷ½áµã£¬ÓÃÍ·Ö¸ÕëLÖ¸ÏòÍ·½áµã + L->next = NULL; //Í·½áµãµÄÖ¸ÕëÓòÖÃ¿Õ + L->prior = NULL; + return OK; +} + +DuLNode *GetElemP_DuL(DuLinkList L, int i) { + //ÔÚ´øÍ·½áµãµÄË«ÏòÁ´±íLÖвéÕÒµÚi¸öÔªËØ£¬·µ»Ø½áµãµÄµØÖ· + int j; + DuLinkList p; + p = L->next; + j = 1; //³õʼ»¯£¬pÖ¸ÏòµÚÒ»¸ö½áµã£¬jΪ¼ÆÊýÆ÷ + while (j < i && p) { //˳Á´ÓòÏòºóɨÃ裬ֱµ½pÖ¸ÏòµÚi¸öÔªËØ»òpΪ¿Õ + p = p->next; + ++j; + } + if (!p || j > i) + return NULL; //µÚi¸öÔªËØ²»´æÔÚ + return p; +} //GetElemP_DuL + +Status ListInsert_DuL(DuLinkList &L, int i, Book e) { //Ëã·¨2.13 Ë«ÏòÁ´±íµÄ²åÈë + //ÔÚ´øÍ·½áµãµÄË«ÏòÁ´±íLÖеÚi¸öλÖÃ֮ǰ²åÈëÔªËØe£¬iµÄºÏ·¨ÖµÎª1<=i<=±í³¤+1 + DuLinkList s, p; + if (!(p = GetElemP_DuL(L, i))) //ÔÚLÖÐÈ·¶¨µÚi¸öÔªËØµÄλÖÃÖ¸Õëp + return ERROR; //pΪNULLʱ£¬µÚi¸öÔªËØ²»´æÔÚ + if (i == 1) {//ÔÚË«ÏòÁ´±íµÄµÚÒ»¸öÔªËØÉϲåÈë + s = new DuLNode; //Éú³Éнáµãs + s->data = e; //½«½áµãsÊý¾ÝÖÃΪe + DuLinkList p = L->next; + L->next = s; + s->prior = L; + s->next = p;//½«½áµã*s²åÈëLÖÐ + p->prior = s; + ++length; + } else if (i == length) {//ÔÚË«ÏòÁ´±íµÄ×îºóÒ»¸öÔªËØÉϲåÈë + s = new DuLNode; //Éú³Éнáµãs + s->data = e; //½«½áµãsÊý¾ÝÖÃΪe + DuLinkList p = L; + while (p->next) + p = p->next;//½«LinkList pÖ¸ÏòË«ÏòÁ´±í½áβ + p->next = s; + s->prior = p;//½«½áµã*s²åÈëµ½pµÄºóÃæ£¬²åÈëµ½LÖÐ + s->next = NULL; + ++length; + } else { + s = new DuLNode; //Éú³Éнáµã*s + s->data = e; //½«½áµã*sÊý¾ÝÓòÖÃΪe + s->prior = p->prior; //½«½áµã*s²åÈëLÖУ¬´Ë²½¶ÔӦͼ2.20¢Ù + p->prior->next = s; //¶ÔӦͼ2.20¢Ú + s->next = p; //¶ÔӦͼ2.20¢Û + p->prior = s; //¶ÔӦͼ2.20¢Ü + ++length; + } + return OK; +} //ListInsert_DuL + +Status ListDelete_DuL(DuLinkList &L, int i) { //Ëã·¨2.14 Ë«ÏòÁ´±íµÄɾ³ý + //ɾ³ý´øÍ·½áµãµÄË«ÏòÁ´±íLÖеÚi¸öλÖÃ֮ǰ²åÈëÔªËØe£¬iµÄºÏ·¨ÖµÎª1<=i<=±í³¤ + DuLinkList p; + if (!(p = GetElemP_DuL(L, i))) //ÔÚLÖÐÈ·¶¨µÚi¸öÔªËØµÄλÖÃÖ¸Õëp + return ERROR; //pΪNULLʱ£¬µÚi¸öÔªËØ²»´æÔÚ + if (i == 1)//ɾ³ýË«ÏòÁ´±íµÄµÚÒ»¸öÔªËØ + L = L->next; + else if (i == length) {//ɾ³ýË«ÏòÁ´±íµÄ×îºóÒ»¸öÔªËØ + p->prior->next = NULL; + delete p; + --length; + return OK; + } else { + p->prior->next = p->next; //Ð޸ı»É¾½áµãµÄǰÇý½áµãµÄºó¼ÌÖ¸Õ룬¶ÔӦͼ2.21¢Ù + p->next->prior = p->prior; //Ð޸ı»É¾½áµãµÄºó¼Ì½áµãµÄǰÇýÖ¸Õ룬¶ÔӦͼ2.21¢Ú + delete p; //Êͷű»É¾½áµãµÄ¿Õ¼ä + --length; + return OK; + } +}//ListDelete_DuL + +void CreateDuList_L(DuLinkList &L) { + //ÕýλÐòÊäÈën¸öÔªËØµÄÖµ£¬½¨Á¢´ø±íÍ·½áµãµÄË«ÏòÁ´±íL£¬Í¬Ê±½¨Á¢Ç°ÇýÖ¸Õë + DuLinkList r, p; + L = new DuLNode; + L->next = NULL; //ÏȽ¨Á¢Ò»¸ö´øÍ·½áµãµÄ¿ÕÁ´±í + r = L;//βָÕërÖ¸ÏòÍ·½áµã + length = 0; + fstream file; + file.open("book.txt"); + if (!file) { + cout << "δÕÒµ½Ïà¹ØÎļþ£¬ÎÞ·¨´ò¿ª£¡" << endl; + exit(ERROR); + } + file >> head_1 >> head_2 >> head_3; + while (!file.eof()) { + p = new DuLNode; //Éú³Éнáµã + file >> p->data.id >> p->data.name >> p->data.price; //ÊäÈëÔªËØÖµ + p->next = NULL; + r->next = p; //²åÈëµ½±íβ + r = p; //rÖ¸ÏòеÄβ½áµã + p->prior = L->prior; //²åÈëµ½±íÍ· + L->prior = p; + length++; + } + file.close(); +} //CreateDuList_L + +int main() { + int a, choose; + Book e; + DuLinkList L, p; + cout << "1. ½¨Á¢\n"; + cout << "2. ÊäÈë\n"; + cout << "3. ²åÈë\n"; + cout << "4. ɾ³ý\n"; + cout << "5. Êä³ö\n"; + cout << "0. Í˳ö\n\n"; + + choose = -1; + while (choose != 0) { + cout << "ÇëÑ¡Ôñ:"; + cin >> choose; + switch (choose) { + case 1: //½¨Á¢Ò»¸öË«ÏòÁ´±í + if (InitDuList_L(L)) + cout << "³É¹¦½¨Á¢Ë«ÏòÁ´±í!\n\n"; + break; + case 2: //ʹÓúó²å·¨´´½¨Ë«ÏòÁ´±í + CreateDuList_L(L); + cout << "ÊäÈë book.txt ÐÅÏ¢Íê±Ï\n\n"; + break; + case 3: //Ë«ÏòÁ´±íµÄ²åÈë + cout << "ÇëÊäÈëÁ½¸öÊý·Ö±ð´ú±í²åÈëµÄλÖúÍÊýÖµ£¨ÊéµÄÐÅÏ¢£º±àºÅ&ÊéÃû&¼Û¸ñ£©:"; + cin >> a; + cin >> e.id >> e.name >> e.price; + if (ListInsert_DuL(L, a, e)) + cout << "²åÈë³É¹¦.\n\n"; + else + cout << "²åÈëʧ°Ü!\n\n"; + break; + case 4: //Ë«ÏòÁ´±íµÄɾ³ý + cout << "ÇëÊäÈëËùҪɾ³ýµÄÊé¼®µÄλÖÃ:"; + cin >> a; + if (ListDelete_DuL(L, a)) + cout << "ɾ³ý³É¹¦!\n\n"; + else + cout << "ɾ³ýʧ°Ü!\n\n"; + break; + case 5: //Ë«ÏòÁ´±íµÄÊä³ö + cout << "µ±Ç°Í¼ÊéϵͳÐÅÏ¢¶Á³ö:\n"; + p = L->next; + while (p) { + cout << left << setw(15) << p->data.id << "\t" << left << setw( + 50) << p->data.name << "\t" << left << setw(5) + << p->data.price << endl; + p = p->next; + } + cout << endl; + break; + } + } + return 0; +} \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.13-2.14/book.txt b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.13-2.14/book.txt new file mode 100644 index 0000000..3701fc8 --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.13-2.14/book.txt @@ -0,0 +1,17 @@ +ISBN ÊéÃû ¶¨¼Û +9787302257646 ³ÌÐòÉè¼Æ»ù´¡ 25 +9787302219972 µ¥Æ¬»ú¼¼Êõ¼°Ó¦Óà 32 +9787302203513 ±àÒëÔ­Àí 46 +9787811234923 »ã±àÓïÑÔ³ÌÐòÉè¼Æ½Ì³Ì 21 +9787512100831 ¼ÆËã»ú²Ù×÷ϵͳ 17 +9787302265436 ¼ÆËã»úµ¼ÂÛʵÑéÖ¸µ¼ 18 +9787302180630 ʵÓÃÊý¾Ý½á¹¹ 29 +9787302225065 Êý¾Ý½á¹¹£¨CÓïÑ԰棩 38 +9787302171676 C#ÃæÏò¶ÔÏó³ÌÐòÉè¼Æ 39 +9787302250692 CÓïÑÔ³ÌÐòÉè¼Æ 42 +9787302150664 Êý¾Ý¿âÔ­Àí 35 +9787302260806 Java±à³ÌÓëʵ¼ù 56 +9787302252887 Java³ÌÐòÉè¼ÆÓëÓ¦ÓÃ½Ì³Ì 39 +9787302198505 ǶÈëʽ²Ù×÷ϵͳ¼°±à³Ì 25 +9787302169666 Èí¼þ²âÊÔ 24 +9787811231557 Eclipse»ù´¡ÓëÓ¦Óà 35 \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.15(链表)/2.15(链表).cpp b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.15(链表)/2.15(链表).cpp new file mode 100644 index 0000000..97e1347 --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.15(链表)/2.15(链表).cpp @@ -0,0 +1,109 @@ +#include +#include +#include +using namespace std; + +#define ERROR 0 + +typedef struct LNode { + int data; //½áµãµÄÊý¾ÝÓò + struct LNode *next; //½áµãµÄÖ¸ÕëÓò +} LNode, *List; //LinkListΪָÏò½á¹¹ÌåLNodeµÄÖ¸ÕëÀàÐÍ + +int n, m; +char st = 'A'; + +void InitList(List &L) //´´½¨Á´±í +{ + L = new LNode; + L->next = NULL; +} + +void ListInput(List &L, int n) //Á´±íÊý¾ÝµÄÊäÈë +{ + int i; + List p, r; + r = L; + char filename[20] = { 0 }; + cout << "ÇëÊäÈë˳Ðò±íL" << st << "µÄÊý¾ÝÎļþÃû³Æ£¨ÎļþÃû+¡°.txt¡±£¬ÈçList" << st << ".txt£©£º" << endl; + ++st; + gets(filename); + fstream file; + file.open(filename); + if (!file) { + cout << "δÕÒµ½Ïà¹ØÎļþ£¬ÎÞ·¨´ò¿ª£¡" << endl; + exit(ERROR); + } + while (!file.eof()) { + p = new LNode; + file >> p->data; + p->next = NULL; + r->next = p; + r = p; + n++; + } + file.close(); +} + +bool LocateElem(List L, int e) //ÅжÏListÀïÓÐûÓÐeÕâ¸öÔªËØ +{ + List p; + p = L->next; + while (p != NULL) { + if (p->data == e) + return true; + p = p->next; + } + return false; +} + +void ListInsert(List &L, int e) //½«e²åÈëµ½ListÖÐ +{ + List p; + p = new LNode; + p->data = e; + p->next = L->next; + L->next = p; +} + +void ListOutput(List L) //Êä³öList +{ + List p; + p = L->next; + while (p != NULL) { + cout << p->data << " "; + p = p->next; + } + cout << endl; +} + +void unionList(List &LA, List LB) //Ëã·¨2.15 ÏßÐÔ±íµÄºÏ²¢£¨Á´±í£© +{ + //½«ËùÓÐÔÚÏßÐÔ±íLBÖе«²»ÔÚLAÖеÄÊý¾ÝÔªËØ²åÈëµ½LAÖÐ + int e; + List p; + p = LB->next; + while (p != NULL) { + e = p->data; + if (!LocateElem(LA, e)) //LAÖв»´æÔÚºÍeÏàͬµÄÊý¾ÝÔªËØ£¬Ôò²åÈëÖ® + ListInsert(LA, e); + p = p->next; + } +} //unionList + +int main() { + List LA, LB; + + InitList(LA); + + InitList(LB); + + ListInput(LA, n); + ListInput(LB, m); + + unionList(LA, LB); + + cout << "LAºÍLBºÏ²¢ºóµÄ¼¯ºÏΪ£º\n"; + ListOutput(LA); + return 0; +} \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.15(链表)/ListA.txt b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.15(链表)/ListA.txt new file mode 100644 index 0000000..6f2b0bc --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.15(链表)/ListA.txt @@ -0,0 +1 @@ +7 5 3 11 \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.15(链表)/ListB.txt b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.15(链表)/ListB.txt new file mode 100644 index 0000000..8a56b96 --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.15(链表)/ListB.txt @@ -0,0 +1 @@ +2 6 3 \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.15(顺åº�表)/2.15(顺åº�表).cpp b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.15(顺åº�表)/2.15(顺åº�表).cpp new file mode 100644 index 0000000..1a1eb80 --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.15(顺åº�表)/2.15(顺åº�表).cpp @@ -0,0 +1,100 @@ +#include +#include +using namespace std; +#define MAXSIZE 100 +#define ERROR 0 +typedef struct { //¶¨Òå˳Ðò±í + int *elem; + int length; +} List; +int n, m; +char st = 'A'; + +void InitList(List &L) //´´½¨Ë³Ðò±í +{ + L.elem = new int[MAXSIZE]; + L.length = 0; +} + +void ListInput(List &L, int n) //˳Ðò±íÊý¾ÝµÄÊäÈë +{ + int i = 0; + char filename[20] = { 0 }; + cout << "ÇëÊäÈë˳Ðò±íL" << st << "µÄÊý¾ÝÎļþÃû³Æ£¨ÎļþÃû+¡°.txt¡±£¬ÈçList" << st << ".txt£©£º" << endl; + ++st; + gets(filename); + fstream file; + file.open(filename); + if (!file) { + cout << "δÕÒµ½Ïà¹ØÎļþ£¬ÎÞ·¨´ò¿ª£¡" << endl; + exit(ERROR); + } + while (!file.eof()) { + file >> L.elem[i]; + i++; + } + L.length = i; + +} + +int ListLength(List L) //Çó˳Ðò±íµÄ³¤¶È +{ + return L.length; +} + +void GetElem(List L, int i, int &e) //Çó˳Ðò±íµÄµÚi¸öÔªËØ£¬²¢ÒÔe·µ»Ø +{ + e = L.elem[i - 1]; +} + +bool LocateElem(List L, int e) //ÅжÏListÀïÓÐûÓÐeÕâ¸öÔªËØ +{ + int i; + for (i = 0; i < L.length; i++) + if (e == L.elem[i]) + return true; + return false; +} + +void ListInsert(List &L, int e) //½«e²åÈëµ½ListµÄ×îºó +{ + L.elem[L.length] = e; + L.length++; +} + +void ListOutput(List L) //Êä³öList +{ + int i; + for (i = 0; i < L.length; i++) + cout << L.elem[i] << " "; + cout << endl; +} + +void unionList(List &LA, List LB) //Ëã·¨2.14 ÏßÐÔ±íµÄºÏ²¢£¨Ë³Ðò±í£© +{ + //½«ËùÓÐÔÚÏßÐÔ±íLBÖе«²»ÔÚLAÖеÄÊý¾ÝÔªËØ²åÈëµ½LAÖÐ + int LA_len, LB_len, i, e; + LA_len = ListLength(LA); + LB_len = ListLength(LB); //ÇóÏßÐÔ±íµÄ³¤¶È + for (i = 1; i <= LB_len; i++) { + GetElem(LB, i, e); //È¡LBÖеÚi¸öÊý¾ÝÔªËØ¸³¸øe + if (!LocateElem(LA, e)) //LAÖв»´æÔÚºÍeÏàͬµÄÊý¾ÝÔªËØ£¬Ôò²åÈëÖ® + ListInsert(LA, e); + } +} //unionList + +int main() { + List LA, LB; + InitList(LA); + InitList(LB); + + ListInput(LA, n); + + ListInput(LB, m); + + unionList(LA, LB); + + cout << "LAºÍLBºÏ²¢ºóµÄ¼¯ºÏΪ£º\n"; + ListOutput(LA); + return 0; +} \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.15(顺åº�表)/ListA.txt b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.15(顺åº�表)/ListA.txt new file mode 100644 index 0000000..6f2b0bc --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.15(顺åº�表)/ListA.txt @@ -0,0 +1 @@ +7 5 3 11 \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.15(顺åº�表)/ListB.txt b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.15(顺åº�表)/ListB.txt new file mode 100644 index 0000000..8a56b96 --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.15(顺åº�表)/ListB.txt @@ -0,0 +1 @@ +2 6 3 \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.16/2.16.cpp b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.16/2.16.cpp new file mode 100644 index 0000000..25081e0 --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.16/2.16.cpp @@ -0,0 +1,93 @@ +#include +#include +using namespace std; +#define MAXSIZE 100 +#define ERROR 0 + +typedef struct //¶¨Òå˳Ðò±í +{ + int *elem; + int length; +} SqList; +int num_a = 0, num_b = 0; +char st = 'A'; + +void InitList_Sq(SqList &L, int n) //´´½¨Ë³Ðò±í +{ + L.elem = new int[MAXSIZE]; + if (!L.elem) + exit(0); + L.length = 0; +} + +void input(SqList &L, int n) //ÒÀ´ÎÍù˳Ðò±íLÀïÊäÈëÊý¾Ý +{ + int i = 0; + char filename[20] = { 0 }; + cout << "ÇëÊäÈë·ÇµÝ¼õÏßÐÔ±í" << st << "µÄÊý¾ÝÎļþÃû³Æ£¨ÎļþÃû+¡°.txt¡±£¬ÈçList" << st << ".txt£©£º" << endl; + ++st; + gets(filename); + fstream file; + file.open(filename); + if (!file) { + cout << "δÕÒµ½Ïà¹ØÎļþ£¬ÎÞ·¨´ò¿ª£¡" << endl; + exit(ERROR); + } + while (!file.eof()) { + file >> L.elem[i]; + i++; + } + L.length = i; +} + +void output(SqList L) //ÒÀ´ÎÊä³ö˳Ðò±íÀïµÄÿ¸öÔªËØ +{ + int i; + for (i = 0; i < L.length; i++) { + if (i) + cout << ","; + cout << L.elem[i]; + } +} + +void MergeList_Sq(SqList LA, SqList LB, SqList &LC) //Ëã·¨2.16 ˳ÐòÓÐÐò±íµÄºÏ²¢ +{ + //ÒÑ֪˳ÐòÓÐÐò±íLAºÍLBµÄÔªËØ°´Öµ·ÇµÝ¼õÅÅÁÐ + //¹é²¢LAºÍLBµÃµ½ÐµÄ˳ÐòÓÐÐò±íLC£¬LCµÄÔªËØÒ²°´Öµ·ÇµÝ¼õÅÅÁÐ + int *pa, *pb, *pc, *pa_last, *pb_last; + pa = LA.elem; + pb = LB.elem; //Ö¸ÕëpaºÍpbµÄ³õÖµ·Ö±ðÖ¸ÏòÁ½¸ö±íµÄµÚÒ»´ÎÔªËØ + LC.length = LA.length + LB.length; //ÐÂ±í³¤¶ÈΪ´ýºÏ²¢Á½±íµÄ³¤¶ÈÖ®ºÍ + LC.elem = new int[LC.length]; //ΪºÏ²¢ºóµÄбí·ÖÅäÒ»¸öÊý×é¿Õ¼ä + pc = LC.elem; //Ö¸ÕëpcÖ¸ÏòбíµÄµÚÒ»¸öÔªËØ + pa_last = LA.elem + LA.length - 1; //Ö¸Õëpa_lastÖ¸ÏòLA±íµÄ×îºóÒ»¸öÔªËØ + pb_last = LB.elem + LB.length - 1; //Ö¸Õëpb_lastÖ¸ÏòLB±íµÄ×îºóÒ»¸öÔªËØ + while (pa <= pa_last && pb <= pb_last) //Á½¸ö±í¶¼·Ç¿Õ + { + if (*pa <= *pb) //ÒÀ´Î¡°ÕªÈ¡¡±Á½±íÖÐÖµ½ÏСµÄ½áµã²åÈëµ½LC±íµÄ×îºó + *pc++ = *pa++; + else + *pc++ = *pb++; + } + while (pa <= pa_last) //LBÒѵ½´ï±í⣬ÒÀ´Î½«LAµÄÊ£ÓàÔªËØ²åÈëLC±íµÄ×îºó + *pc++ = *pa++; + while (pb <= pb_last) //LAÒѵ½´ï±í⣬ÒÀ´Î½«LBµÄÊ£ÓàÔªËØ²åÈëLC±íµÄ×îºó + *pc++ = *pb++; +} //MergeList_List + +int main() { + SqList La, Lb, Lc; + + InitList_Sq(La, num_a); //La±íµÄ´´½¨ + input(La, num_a); //ÒÀ´ÎÍù˳Ðò±íLaÀïÊäÈëÊý¾Ý + + InitList_Sq(Lb, num_b); //Lb±íµÄ´´½¨ + input(Lb, num_b); //ÒÀ´ÎÍù˳Ðò±íLaÀïÊäÈëÊý¾Ý + + MergeList_Sq(La, Lb, Lc); //½«Ë³Ðò±íLaºÍLb½øÐкϲ¢ + + cout << "·ÇµÝ¼õÏßÐÔ±íA£¬BºÏ²¢ºóµÄ·ÇµÝ¼õÏßÐÔ±íCΪ£º\n"; //Êä³öºÏ²¢ºóµÄÓÐÐò˳Ðò±íLc + output(Lc); + cout << endl; + return 0; +} \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.16/ListA.txt b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.16/ListA.txt new file mode 100644 index 0000000..601ea4a --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.16/ListA.txt @@ -0,0 +1 @@ +3 5 8 11 \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.16/ListB.txt b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.16/ListB.txt new file mode 100644 index 0000000..f8f292f --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.16/ListB.txt @@ -0,0 +1 @@ +2 6 8 9 11 15 20 \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.17/2.17.cpp b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.17/2.17.cpp new file mode 100644 index 0000000..8eb909e --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.17/2.17.cpp @@ -0,0 +1,104 @@ +#include +#include +using namespace std; +#define ERROR 0 + +typedef struct LNode //¶¨Òåµ¥Á´±í +{ + int data; + struct LNode *next; +} LNode, *LinkList; + +int num_a, num_b; +char st = 'A'; + +void InitList_L(LinkList &L) //´´½¨µ¥Á´±í +{ + L = new LNode; + L->next = NULL; +} + +void input(LinkList &L, int n) //ÒÀ´ÎÍùµ¥Á´±íLÀïÊäÈëÊý¾Ý +{ + int i; + LNode *p, *r; + r = L; + char filename[20] = { 0 }; + cout << "ÇëÊäÈë·ÇµÝ¼õµ¥Á´±í" << st << "µÄÊý¾ÝÎļþÃû³Æ£¨ÎļþÃû+¡°.txt¡±£¬ÈçList" << st << ".txt£©£º" << endl; + ++st; + gets(filename); + fstream file; + file.open(filename); + if (!file) { + cout << "δÕÒµ½Ïà¹ØÎļþ£¬ÎÞ·¨´ò¿ª£¡" << endl; + exit(ERROR); + } + while (!file.eof()) { + p = new LNode; + file >> p->data; + p->next = NULL; + r->next = p; + r = p; + n++; + } + file.close(); +} + +void output(LinkList L) //ÒÀ´ÎÊä³öµ¥Á´±íÀïµÄÿ¸öÔªËØ +{ + int i = 0; + LNode *p; + p = L->next; + while (p) { + if (i) + cout << ","; + cout << p->data; + p = p->next; + i = 1; + } +} + +void MergeList_L(LinkList &LA, LinkList &LB, LinkList &LC) //Ëã·¨2.17 Á´Ê½ÓÐÐò±íµÄºÏ²¢ +{ + //ÒÑÖªµ¥Á´±íLAºÍLBµÄÔªËØ°´Öµ·ÇµÝ¼õÅÅÁÐ + //¹é²¢LAºÍLBµÃµ½Ðµĵ¥Á´±íLC£¬LCµÄÔªËØÒ²°´Öµ·ÇµÝ¼õÅÅÁÐ + LinkList pa, pb, pc; + pa = LA->next; + pb = LB->next; //paºÍpbµÄ³õÖµ·Ö±ðÖ¸ÏòÁ½¸ö±íµÄµÚÒ»¸ö½áµã + LC = LA; //ÓÃLAµÄÍ·½áµã×÷ΪLCµÄÍ·½áµã + pc = LC; //pcµÄ³õÖµÖ¸ÏòLCµÄÍ·½áµã + while (pa && pb) //Á½¸ö±í¶¼·Ç¿Õ + { + if (pa->data <= pb->data) //ÒÀ´Î"ժȡ"Á½±íÖÐÖµ½ÏСµÄ½áµã²åÈëµ½LC±íµÄ×îºó + { + pc->next = pa; //½«paËùÖ¸½áµãÁ´½Óµ½pcËùÖ¸½áµãÖ®ºó + pc = pa; + pa = pa->next; + } else { + pc->next = pb; //½«pbËùÖ¸½áµãÁ´½Óµ½pcËùÖ¸½áµãÖ®ºó + pc = pb; + pb = pb->next; + } + } + pc->next = pa ? pa : pb; //²åÈë·Ç¿Õ±íµÄÊ£Óà¶Î + delete LB; //ÊÍ·ÅLBµÄÍ·½áµã +} //MergeList_L() + +int main() { + LinkList La, Lb, Lc; + + InitList_L(La); //La±íµÄ´´½¨ + input(La, num_a); //ÒÀ´ÎÍùµ¥Á´±íLaÀïÊäÈëÊý¾Ý + + InitList_L(Lb); //Lb±íµÄ´´½¨ + input(Lb, num_b); //ÒÀ´ÎÍùµ¥Á´±íLaÀïÊäÈëÊý¾Ý + + InitList_L(Lc); + MergeList_L(La, Lb, Lc); //½«µ¥Á´±íLaºÍLb½øÐкϲ¢ + + + cout << "·ÇµÝ¼õµ¥Á´±íA£¬BºÏ²¢ºóµÄ·ÇµÝ¼õµ¥Á´±íCΪ£º\n"; //Êä³öºÏ²¢ºóµÄµ¥Á´±íLc + output(Lc); + cout << endl; + return 0; +} \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.17/ListA.txt b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.17/ListA.txt new file mode 100644 index 0000000..601ea4a --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.17/ListA.txt @@ -0,0 +1 @@ +3 5 8 11 \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.17/ListB.txt b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.17/ListB.txt new file mode 100644 index 0000000..f8f292f --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.17/ListB.txt @@ -0,0 +1 @@ +2 6 8 9 11 15 20 \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.18-2.19/2.18-2.19.cpp b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.18-2.19/2.18-2.19.cpp new file mode 100644 index 0000000..a8c6141 --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.18-2.19/2.18-2.19.cpp @@ -0,0 +1,124 @@ +#include +#include +#include +using namespace std; +#define ERROR 0 + +typedef struct PNode { + float coef; //ϵÊý + int expn; //Ö¸Êý + struct PNode *next; +} PNode, *Polynomial; +string head_1, head_2; +int temp; +char st = 'A'; + +void CreatPolyn(Polynomial &P, int m) //Ëã·¨2.18 ¶àÏîʽµÄ´´½¨ +{ + //ÊäÈëmÏîµÄϵÊýºÍÖ¸Êý£¬½¨Á¢±íʾһ¸ö¶àÏîʽµÄÓÐÐòÁ´±íP + Polynomial q, pre, s; + int i; + P = new PNode; + P->next = NULL; //ÏȽ¨Á¢Ò»¸ö´øÍ·½áµãµÄµ¥Á´±í + char filename[20] = { 0 }; + cout << "ÇëÊäÈëÓйضàÏîʽp" << char(st + 32) << "ϵÊýºÍÖ¸ÊýµÄÊý¾ÝÎļþÃû³Æ£¨ÎļþÃû+¡°.txt¡±£¬ÈçPoly" << st << ".txt£©£º" << endl; + ++st; + gets(filename); + fstream file; + file.open(filename); + if (!file) { + cout << "δÕÒµ½Ïà¹ØÎļþ£¬ÎÞ·¨´ò¿ª£¡" << endl; + exit(ERROR); + } + file >> head_1 >> head_2; + while (!file.eof()) + { + s = new PNode; //Éú³Éнáµã + file >> s->coef >> s->expn; //ÊäÈëÔªËØÖµ + pre = P; //preÓÃÓÚ±£´æqµÄǰÇý£¬³õֵΪͷ½áµã + q = P->next; + while (q && q->expn < s->expn) //ͨ¹ý±È½ÏÖ¸ÊýÕÒµ½µÚÒ»¸ö´óÓÚÊäÈëÏîÖ¸ÊýµÄÏîq + { + pre = q; + q = q->next; + } //while + s->next = q; //½«ÊäÈëÏîs²åÈëµ½qºÍÆäǰÇý½áµãpreÖ®¼ä + pre->next = s; + }//for + file.close(); +} //CreatPolyn + +void AddPolyn(Polynomial &Pa, Polynomial &Pb) //Ëã·¨2.19 ¶àÏîʽµÄÏà¼Ó +{ + //¶àÏîʽ¼Ó·¨£ºPa=Pa+Pb£¬ÀûÓÃÁ½¸ö¶àÏîʽµÄ½áµã¹¹³É¡°ºÍ¶àÏîʽ¡± + Polynomial r, p1, p2, p3; + float sum; + p1 = Pa->next; + p2 = Pb->next; //p1ºÍp2³õÖµ·Ö±ðÖ¸ÏòPaºÍPbµÄµÚÒ»¸ö½áµã + p3 = Pa; //p3Ö¸ÏòºÍ¶àÏîʽµÄµ±Ç°½áµã£¬³õֵΪPa + while (p1 && p2) //p1ºÍp2¾ù·Ç¿Õ + { + if (p1->expn == p2->expn) //Ö¸ÊýÏàµÈ + { + sum = p1->coef + p2->coef; //sum±£´æÁ½ÏîµÄϵÊýºÍ + if (sum != 0) //ϵÊýºÍ²»Îª0 + { + p1->coef = sum; //ÐÞ¸ÄPaµ±Ç°½áµãp1µÄϵÊýֵΪÁ½ÏîϵÊýµÄºÍ + p3->next = p1; + p3 = p1; //½«Ð޸ĺóµÄPaµ±Ç°½áµãp1Á´ÔÚp3Ö®ºó£¬p3Ö¸Ïòp1 + p1 = p1->next; //p1Ö¸ÏòºóÒ»Ïî + r = p2; + p2 = p2->next; + delete r; //ɾ³ýPbµ±Ç°½áµãr + } else //ϵÊýºÍΪ0 + { + r = p1; + p1 = p1->next; + delete r; //ɾ³ýPbµ±Ç°½áµãp1 + r = p2; + p2 = p2->next; + delete r; //ɾ³ýPbµ±Ç°½áµãp2 + } + } else if (p1->expn < p2->expn) //Paµ±Ç°½áµãp1µÄÖ¸ÊýֵС + { + p3->next = p1; //½«p1Á´ÔÚp3Ö®ºó + p3 = p1; //p3Ö¸Ïòp1 + p1 = p1->next; //p1Ö¸ÏòºóÒ»Ïî + } else //Paµ±Ç°½áµãp2µÄÖ¸ÊýֵС + { + p3->next = p2; //½«p2Á´ÔÚp3Ö®ºó + p3 = p2; //p3Ö¸Ïòp2 + p2 = p2->next; //p2Ö¸ÏòºóÒ»Ïî + } + } //while + p3->next = p1 ? p1 : p2; //²åÈë·Ç¿Õ¶àÏîʽµÄÊ£Óà¶Î + delete Pb; //ÊÍ·ÅPbµÄÍ·½áµã +} //AddPolyn + + +int main() { + Polynomial Pa, Pb; + Polynomial p; + int i; + + //´´½¨¶àÏîʽPa + CreatPolyn(Pa, temp); //µ÷Óú¯Êý£¬ÊäÈëPaÿһÏîµÄϵÊýºÍÖ¸Êý + + //´´½¨¶àÏîʽPb + CreatPolyn(Pb, temp); //µ÷Óú¯Êý£¬ÊäÈëPaÿһÏîµÄϵÊýºÍÖ¸Êý + + AddPolyn(Pa, Pb); + cout << "¶àÏîʽPaºÍPbÏà¼ÓºóµÄ½á¹ûÊÇ£º\n"; + p = Pa->next; + i = 0; + while (p) //Êä³öÏà¼ÓºóµÄ½á¹û£¬Ã¿Ò»ÏîÒÔx^n±íʾ + { + if (i) + cout << " + "; + cout << "(" << p->coef << ") * x^" << p->expn; + p = p->next; + i = 1; + } + cout << endl; + return 0; +} \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.18-2.19/PolyA.txt b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.18-2.19/PolyA.txt new file mode 100644 index 0000000..d5f72c1 --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.18-2.19/PolyA.txt @@ -0,0 +1,5 @@ +ϵÊýp Ö¸Êý +7 0 +3 1 +9 8 +5 17 \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.18-2.19/PolyB.txt b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.18-2.19/PolyB.txt new file mode 100644 index 0000000..5100be2 --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.18-2.19/PolyB.txt @@ -0,0 +1,4 @@ +ϵÊýp Ö¸Êý +8 1 +22 7 +-9 8 \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.6-2.12/2.6-2.12.cpp b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.6-2.12/2.6-2.12.cpp new file mode 100644 index 0000000..c180a07 --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.6-2.12/2.6-2.12.cpp @@ -0,0 +1,227 @@ +#include +#include +#include +#include +using namespace std; + +#define OK 1 +#define ERROR 0 +#define OVERFLOW -2 +typedef int Status; //Status ÊǺ¯Êý·µ»ØÖµÀàÐÍ£¬ÆäÖµÊǺ¯Êý½á¹û״̬´úÂë¡£ +typedef int ElemType; //ElemType Ϊ¿É¶¨ÒåµÄÊý¾ÝÀàÐÍ£¬´ËÉèΪintÀàÐÍ + +struct Book { + string id;//ISBN + string name;//ÊéÃû + double price;//¶¨¼Û +}; +typedef struct LNode { + Book data; //½áµãµÄÊý¾ÝÓò + struct LNode *next; //½áµãµÄÖ¸ÕëÓò +} LNode, *LinkList; //LinkListΪָÏò½á¹¹ÌåLNodeµÄÖ¸ÕëÀàÐÍ + +string head_1, head_2, head_3; +int length; + +Status InitList_L(LinkList &L) { //Ëã·¨2.6 µ¥Á´±íµÄ³õʼ»¯ + //¹¹ÔìÒ»¸ö¿ÕµÄµ¥Á´±íL + L = new LNode; //Éú³Éнáµã×÷Ϊͷ½áµã£¬ÓÃÍ·Ö¸ÕëLÖ¸ÏòÍ·½áµã + L->next = NULL; //Í·½áµãµÄÖ¸ÕëÓòÖÃ¿Õ + return OK; +} + +Status GetElem_L(LinkList L, int i, Book &e) { //Ëã·¨2.7 µ¥Á´±íµÄȡֵ + //ÔÚ´øÍ·½áµãµÄµ¥Á´±íLÖвéÕÒµÚi¸öÔªËØ + //ÓÃe·µ»ØLÖеÚi¸öÊý¾ÝÔªËØµÄÖµ + int j; + LinkList p; + p = L->next; + j = 1; //³õʼ»¯£¬pÖ¸ÏòµÚÒ»¸ö½áµã£¬jΪ¼ÆÊýÆ÷ + while (j < i && p) { //˳Á´ÓòÏòºóɨÃ裬ֱµ½pÖ¸ÏòµÚi¸öÔªËØ»òpΪ¿Õ + p = p->next; //pÖ¸ÏòÏÂÒ»¸ö½áµã + ++j; //¼ÆÊýÆ÷jÏàÓ¦¼Ó1 + } + if (!p || j > i) + return ERROR; //iÖµ²»ºÏ·¨i£¾n»òi<=0 + e = p->data; //È¡µÚi¸ö½áµãµÄÊý¾ÝÓò + return OK; +} //GetElem_L + +LNode *LocateElem_L(LinkList L, int e) { //Ëã·¨2.8 °´Öµ²éÕÒ + //ÔÚ´øÍ·½áµãµÄµ¥Á´±íLÖвéÕÒֵΪeµÄÔªËØ + LinkList p; + p = L->next; + while (p && p->data.price != e)//˳Á´ÓòÏòºóɨÃ裬ֱµ½pΪ¿Õ»òpËùÖ¸½áµãµÄÊý¾ÝÓòµÈÓÚe + p = p->next; //pÖ¸ÏòÏÂÒ»¸ö½áµã + return p; //²éÕҳɹ¦·µ»ØÖµÎªeµÄ½áµãµØÖ·p£¬²éÕÒʧ°ÜpΪNULL +} //LocateElem_L + +Status ListInsert_L(LinkList &L, int i, Book &e) { //Ëã·¨2.9 µ¥Á´±íµÄ²åÈë + //ÔÚ´øÍ·½áµãµÄµ¥Á´±íLÖеÚi¸öλÖòåÈëֵΪeµÄнáµã + int j; + LinkList p, s; + p = L; + j = 0; + while (p && j < i - 1) { + p = p->next; + ++j; + }//²éÕÒµÚi?1¸ö½áµã£¬pÖ¸Ïò¸Ã½áµã + if (!p || j > i - 1) + return ERROR; //i£¾n+1»òÕßi£¼1 + s = new LNode; //Éú³Éнáµã*s + s->data = e; //½«½áµã*sµÄÊý¾ÝÓòÖÃΪe + s->next = p->next; //½«½áµã*sµÄÖ¸ÕëÓòÖ¸Ïò½áµãai + p->next = s; //½«½áµã*pµÄÖ¸ÕëÓòÖ¸Ïò½áµã*s + ++length; + return OK; +} //ListInsert_L + +Status ListDelete_L(LinkList &L, int i) { //Ëã·¨2.9 µ¥Á´±íµÄɾ³ý + //ÔÚ´øÍ·½áµãµÄµ¥Á´±íLÖУ¬É¾³ýµÚi¸öλÖà + LinkList p, q; + int j; + p = L; + j = 0; + while ((p->next) && (j < i - 1)) //²éÕÒµÚi?1¸ö½áµã£¬pÖ¸Ïò¸Ã½áµã + { + p = p->next; + ++j; + } + if (!(p->next) || (j > i - 1)) + return ERROR; //µ±i>n»òi<1ʱ£¬É¾³ýλÖò»ºÏÀí + q = p->next; //ÁÙʱ±£´æ±»É¾½áµãµÄµØÖ·ÒÔ±¸ÊÍ·Å + p->next = q->next; //¸Ä±äɾ³ý½áµãǰÇý½áµãµÄÖ¸ÕëÓò + delete q; //ÊÍ·Åɾ³ý½áµãµÄ¿Õ¼ä + --length; + return OK; +} //ListDelete_L + +void CreateList_H(LinkList &L, int n) { //Ëã·¨2.11 ǰ²å·¨´´½¨µ¥Á´±í + //ÄæÎ»ÐòÊäÈën¸öÔªËØµÄÖµ£¬½¨Á¢µ½Í·½áµãµÄµ¥Á´±íL + LinkList p; + L = new LNode; + L->next = NULL; //ÏȽ¨Á¢Ò»¸ö´øÍ·½áµãµÄ¿ÕÁ´±í + length = 0; + fstream file; + file.open("book.txt"); + if (!file) { + cout << "δÕÒµ½Ïà¹ØÎļþ£¬ÎÞ·¨´ò¿ª£¡" << endl; + exit(ERROR); + } + file >> head_1 >> head_2 >> head_3; + while (!file.eof()) { + p = new LNode; //Éú³Éнáµã*p + file >> p->data.id >> p->data.name >> p->data.price; //ÊäÈëÔªËØÖµ¸³¸øÐ½áµã*pµÄÊý¾ÝÓò + p->next = L->next; + L->next = p; //½«Ð½áµã*p²åÈ뵽ͷ½áµãÖ®ºó + length++;//ͬʱ¶ÔÁ´±í³¤¶È½øÐÐͳ¼Æ + } + file.close(); +} //CreateList_F + +void CreateList_R(LinkList &L, int n) { //Ëã·¨2.12 ºó²å·¨´´½¨µ¥Á´±í + //ÕýλÐòÊäÈën¸öÔªËØµÄÖµ£¬½¨Á¢´ø±íÍ·½áµãµÄµ¥Á´±íL + LinkList p, r; + L = new LNode; + L->next = NULL; //ÏȽ¨Á¢Ò»¸ö´øÍ·½áµãµÄ¿ÕÁ´±í + r = L; //βָÕërÖ¸ÏòÍ·½áµã + length = 0; + fstream file; //´ò¿ªÎļþ½øÐжÁд²Ù×÷ + file.open("book.txt"); + if (!file) { + cout << "δÕÒµ½Ïà¹ØÎļþ£¬ÎÞ·¨´ò¿ª£¡" << endl; + exit(ERROR); + } + file >> head_1 >> head_2 >> head_3; + while (!file.eof()) { //½«ÎļþÖеÄÐÅÏ¢ÔËÓúó²å·¨²åÈëµ½Á´±íÖÐ + p = new LNode;//Éú³Éнáµã + file >> p->data.id >> p->data.name >> p->data.price;//ÊäÈëÔªËØÖµ¸³¸øÐ½áµã*pµÄÊý¾ÝÓò + p->next = NULL; + r->next = p;//½«Ð½áµã*p²åÈëβ½áµã*rÖ®ºó + r = p;//rÖ¸ÏòеÄβ½áµã*p + length++; //ͬʱ¶ÔÁ´±í³¤¶È½øÐÐͳ¼Æ + } + file.close(); +} //CreateList_L + +int main() { + int a, n, choose; + double price; + Book e; + LinkList L, p; + cout << "1. ½¨Á¢\n"; + cout << "2. ÊäÈë\n"; + cout << "3. ȡֵ\n"; + cout << "4. ²éÕÒ\n"; + cout << "5. ²åÈë\n"; + cout << "6. ɾ³ý\n"; + cout << "7. Êä³ö\n"; + cout << "0. Í˳ö\n\n"; + + choose = -1; + while (choose != 0) { + cout << "ÇëÑ¡Ôñ:"; + cin >> choose; + switch (choose) { + case 1: //½¨Á¢Ò»¸öµ¥Á´±í + if (InitList_L(L)) + cout << "³É¹¦½¨Á¢Á´±í!\n\n"; + break; + case 2: //ʹÓúó²å·¨´´½¨µ¥Á´±í + CreateList_R(L, length); + cout << "ÊäÈë book.txt ÐÅÏ¢Íê±Ï\n\n"; + break; + case 3: //µ¥Á´±íµÄ°´ÐòºÅȡֵ + cout << "ÇëÊäÈëÒ»¸öλÖÃÓÃÀ´È¡Öµ:"; + cin >> a; + if (GetElem_L(L, a, e)) { + cout << "²éÕҳɹ¦\n"; + cout << "µÚ" << a << "±¾Í¼ÊéµÄÐÅÏ¢ÊÇ£º\n"; + cout << left << setw(15) << e.id << "\t" << left << setw(50) + << e.name << "\t" << left << setw(5) << e.price << endl + << endl; + } else + cout << "²éÕÒʧ°Ü\n\n"; + break; + case 4: //µ¥Á´±íµÄ°´Öµ²éÕÒ + cout << "ÇëÊäÈëËùÒª²éÕÒ¼Û¸ñ:"; + cin >> price; + if (LocateElem_L(L, price) != NULL) { + cout << "²éÕҳɹ¦\n"; + cout << "¸Ã¼Û¸ñ¶ÔÓ¦µÄÊéÃûΪ£º" << LocateElem_L(L, price)->data.name + << endl << endl; + } else + cout << "²éÕÒʧ°Ü! ¶¨¼Û" << price << " ûÓÐÕÒµ½\n\n"; + break; + case 5: //µ¥Á´±íµÄ²åÈë + cout << "ÇëÊäÈë²åÈëµÄλÖúÍÊéµÄÐÅÏ¢£¬°üÀ¨£º±àºÅ ÊéÃû ¼Û¸ñ£¨Óÿոñ¸ô¿ª£©:"; + cin >> a; + cin >> e.id >> e.name >> e.price; + if (ListInsert_L(L, a, e)) + cout << "²åÈë³É¹¦.\n\n"; + else + cout << "²åÈëʧ°Ü!\n\n"; + break; + case 6: //µ¥Á´±íµÄɾ³ý + cout << "ÇëÊäÈëËùҪɾ³ýµÄÊé¼®µÄλÖÃ:"; + cin >> a; + if (ListDelete_L(L, a)) + cout << "ɾ³ý³É¹¦!\n\n"; + else + cout << "ɾ³ýʧ°Ü!\n\n"; + break; + case 7: //µ¥Á´±íµÄÊä³ö + cout << "µ±Ç°Í¼ÊéϵͳÐÅÏ¢£¨Á´±í£©¶Á³ö:\n"; + p = L->next; + while (p) { + cout << left << setw(15) << p->data.id << "\t" << left << setw( + 50) << p->data.name << "\t" << left << setw(5) + << p->data.price << endl; + p = p->next; + } + cout << endl; + break; + } + } + return 0; +} diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.6-2.12/book.txt b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.6-2.12/book.txt new file mode 100644 index 0000000..3701fc8 --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第2ç« /2.6-2.12/book.txt @@ -0,0 +1,17 @@ +ISBN ÊéÃû ¶¨¼Û +9787302257646 ³ÌÐòÉè¼Æ»ù´¡ 25 +9787302219972 µ¥Æ¬»ú¼¼Êõ¼°Ó¦Óà 32 +9787302203513 ±àÒëÔ­Àí 46 +9787811234923 »ã±àÓïÑÔ³ÌÐòÉè¼Æ½Ì³Ì 21 +9787512100831 ¼ÆËã»ú²Ù×÷ϵͳ 17 +9787302265436 ¼ÆËã»úµ¼ÂÛʵÑéÖ¸µ¼ 18 +9787302180630 ʵÓÃÊý¾Ý½á¹¹ 29 +9787302225065 Êý¾Ý½á¹¹£¨CÓïÑ԰棩 38 +9787302171676 C#ÃæÏò¶ÔÏó³ÌÐòÉè¼Æ 39 +9787302250692 CÓïÑÔ³ÌÐòÉè¼Æ 42 +9787302150664 Êý¾Ý¿âÔ­Àí 35 +9787302260806 Java±à³ÌÓëʵ¼ù 56 +9787302252887 Java³ÌÐòÉè¼ÆÓëÓ¦ÓÃ½Ì³Ì 39 +9787302198505 ǶÈëʽ²Ù×÷ϵͳ¼°±à³Ì 25 +9787302169666 Èí¼þ²âÊÔ 24 +9787811231557 Eclipse»ù´¡ÓëÓ¦Óà 35 \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.1-3.4/3.1-3.4.cpp b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.1-3.4/3.1-3.4.cpp new file mode 100644 index 0000000..0d2ca92 --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.1-3.4/3.1-3.4.cpp @@ -0,0 +1,117 @@ +/***˳ÐòÕ»µÄʵÏÖ***/ + +#include +#include +using namespace std; + +//˳ÐòÕ»¶¨Òå +#define OK 1 +#define ERROR 0 +#define OVERFLOW -2 +#define MAXSIZE 100//˳ÐòÕ»´æ´¢¿Õ¼äµÄ³õʼ·ÖÅäÁ¿ +typedef int Status; +typedef char SElemType; + +typedef struct { + SElemType *base;//Õ»µ×Ö¸Õë + SElemType *top;//Õ»¶¥Ö¸Õë + int stacksize;//Õ»¿ÉÓõÄ×î´óÈÝÁ¿ +} SqStack; + +//Ëã·¨3.1¡¡Ë³ÐòÕ»µÄ³õʼ»¯ +Status InitStack(SqStack &S) { + //¹¹ÔìÒ»¸ö¿ÕÕ»S + S.base = new SElemType[MAXSIZE];//Ϊ˳ÐòÕ»¶¯Ì¬·ÖÅäÒ»¸ö×î´óÈÝÁ¿ÎªMAXSIZEµÄÊý×é¿Õ¼ä + if (!S.base) + exit(OVERFLOW); //´æ´¢·ÖÅäʧ°Ü + S.top = S.base; //top³õʼΪbase£¬¿ÕÕ» + S.stacksize = MAXSIZE; //stacksizeÖÃΪջµÄ×î´óÈÝÁ¿MAXSIZE + return OK; +} +//Ëã·¨3.2¡¡Ë³ÐòÕ»µÄÈëÕ» +Status Push(SqStack &S, SElemType e) { + // ²åÈëÔªËØeΪеÄÕ»¶¥ÔªËØ + if (S.top - S.base == S.stacksize) + return ERROR; //Õ»Âú + *(S.top++) = e; //ÔªËØeѹÈëÕ»¶¥£¬Õ»¶¥Ö¸Õë¼Ó1 + return OK; +} +//Ëã·¨3.3¡¡Ë³ÐòÕ»µÄ³öÕ» +Status Pop(SqStack &S, SElemType &e) { + //ɾ³ýSµÄÕ»¶¥ÔªËØ£¬ÓÃe·µ»ØÆäÖµ + if (S.base == S.top) + return ERROR;//Õ»¿Õ + e = *(--S.top); //Õ»¶¥Ö¸Õë¼õ1£¬½«Õ»¶¥ÔªËظ³¸øe + return OK; +} +//Ëã·¨3.4¡¡È¡Ë³ÐòÕ»µÄÕ»¶¥ÔªËØ +char GetTop(SqStack S) {//·µ»ØSµÄÕ»¶¥ÔªËØ£¬²»ÐÞ¸ÄÕ»¶¥Ö¸Õë + if (S.top != S.base) //Õ»·Ç¿Õ + return *(S.top - 1); //·µ»ØÕ»¶¥ÔªËصÄÖµ£¬Õ»¶¥Ö¸Õë²»±ä +} + +int main() { + SqStack s; + int choose, flag = 0; + SElemType j, e, t; + cout << "1.³õʼ»¯\n"; + cout << "2.ÈëÕ»\n"; + cout << "3.¶ÁÕ»¶¥ÔªËØ\n"; + cout << "4.³öÕ»\n"; + cout << "0.Í˳ö\n\n"; + + choose = -1; + while (choose != 0) { + cout << "ÇëÑ¡Ôñ:"; + cin >> choose; + switch (choose) { + case 1://Ëã·¨3.1¡¡Ë³ÐòÕ»µÄ³õʼ»¯ + if (InitStack(s)) { + flag = 1; + cout << "³É¹¦¶ÔÕ»½øÐгõʼ»¯\n\n"; + } else + cout << "³õʼ»¯Õ»Ê§°Ü\n\n"; + break; + case 2: {//Ëã·¨3.2¡¡Ë³ÐòÕ»µÄÈëÕ» + fstream file; + file.open("SqStack.txt");// + if (!file) { + cout << "´íÎó£¡Î´ÕÒµ½Îļþ£¡\n\n" << endl; + exit(ERROR); + } + if (flag) { + flag = 1; + cout << "½øÕ»ÔªËØÒÀ´ÎΪ£º\n"; + while (!file.eof()) { + file >> j; + if (file.fail()) + break; + else { + Push(s, j); + cout << j << " "; + } + } + cout << endl << endl; + } else + cout << "ջ佨Á¢£¬ÇëÖØÐÂÑ¡Ôñ\n\n"; + file.close(); + } + break; + case 3://Ëã·¨3.3¡¡Ë³ÐòÕ»µÄ³öÕ» + if(flag != -1 && flag != 0) + cout << "Õ»¶¥ÔªËØÎª£º\n" << GetTop(s) << endl << endl; + else + cout << "Õ»ÖÐÎÞÔªËØ£¬ÇëÖØÐÂÑ¡Ôñ\n" << endl; + break; + case 4://Ëã·¨3.4¡¡È¡Ë³ÐòÕ»µÄÕ»¶¥ÔªËØ + cout << "ÒÀ´Îµ¯³öµÄÕ»¶¥ÔªËØÎª:\n"; + while (Pop(s, t)){ + flag = -1; + cout << t << " "; + } + cout << endl << endl; + break; + } + } + return 0; +} diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.1-3.4/SqStack.txt b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.1-3.4/SqStack.txt new file mode 100644 index 0000000..1f30c63 --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.1-3.4/SqStack.txt @@ -0,0 +1,4 @@ +A +B +C +D \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.10/3.10.cpp b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.10/3.10.cpp new file mode 100644 index 0000000..9d3880e --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.10/3.10.cpp @@ -0,0 +1,16 @@ +/***HanoiËþÎÊÌâ***/ + +#include"3.10.h" + +int main() { + int n; + char a, b, c; + a = '1'; + b = '2'; + c = '3'; + cout << "ÇëÊäÈë³õʼµÚÒ»¸öÖù×ÓÉϵÄÔ²Å̸öÊý£º" << endl; + cin >> n; + cout << "½«µÚÒ»¸öÖù×ÓÉϵÄÔ²ÅÌÈ«²¿Òƶ¯µ½µÚÈý¸öÖù×ÓÉϵĹý³ÌΪ£º" << endl; + Hanoi(n, a, b, c); + return 0; +} diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.10/3.10.h b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.10/3.10.h new file mode 100644 index 0000000..a8a2692 --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.10/3.10.h @@ -0,0 +1,20 @@ +#include +using namespace std; + +int m = 0;//£¨mÊdzõֵΪ0µÄÈ«¾Ö±äÁ¿£¬¶Ô°á¶¯¼ÆÊý£© +void move(char A, int n, char C) // °á¶¯²Ù×÷ +{ + cout << "µÚ" << ++m << "²½," << "½«±àºÅΪ" << n << "µÄÔ²ÅÌ´ÓµÚ" << A << "¸öÖù×ÓÉÏÒÆµ½µÚ" << C + << "¸öÖù×ÓÉÏ" << endl; +} + +//Ëã·¨3.10¡¡HanoiËþÎÊÌâµÄµÝ¹éËã·¨ +void Hanoi(int n, char A, char B, char C) {//½«Ëþ×ùAÉϵÄn¸öÔ²Å̰´¹æÔò°áµ½CÉÏ£¬B×ö¸¨ÖúËþ + if (n == 1) + move(A, 1, C); //½«±àºÅΪ1µÄÔ²ÅÌ´ÓAÒÆµ½C + else { + Hanoi(n - 1, A, C, B); //½«AÉϱàºÅΪ1ÖÁn-1µÄÔ²ÅÌÒÆµ½B£¬C×ö¸¨ÖúËþ + move(A, n, C);//½«±àºÅΪnµÄÔ²ÅÌ´ÓAÒÆµ½C + Hanoi(n - 1, B, A, C); //½«BÉϱàºÅΪ1ÖÁn-1µÄÔ²ÅÌÒÆµ½C£¬A×ö¸¨ÖúËþ + } +} \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.11-3.15/3.11-3.15.cpp b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.11-3.15/3.11-3.15.cpp new file mode 100644 index 0000000..572dc49 --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.11-3.15/3.11-3.15.cpp @@ -0,0 +1,123 @@ +/***Ñ­»·¶ÓÁлù±¾²Ù×÷***/ + +#include +#include +using namespace std; + +#define MAXQSIZE 100 +#define OK 1 +#define ERROR 0 +#define OVERFLOW -2 +typedef char QElemType; +typedef char SElemType; +typedef int Status; + +typedef struct { + QElemType *base;//³õʼ»¯Ê±¶¯Ì¬·ÖÅä´æ´¢¿Õ¼ä + int front;//Í·Ö¸Õë + int rear;//βָÕë +} SqQueue; + +//Ëã·¨3.11¡¡Ñ­»·¶ÓÁеijõʼ»¯ +Status InitQueue(SqQueue &Q) {//¹¹ÔìÒ»¸ö¿Õ¶ÓÁÐQ + Q.base = new QElemType[MAXQSIZE]; //Ϊ¶ÓÁзÖÅäÒ»¸ö×î´óÈÝÁ¿ÎªMAXSIZEµÄÊý×é¿Õ¼ä + if (!Q.base) + exit(OVERFLOW); //´æ´¢·ÖÅäʧ°Ü + Q.front = Q.rear = 0; //Í·Ö¸ÕëºÍβָÕëÖÃΪÁ㣬¶ÓÁÐΪ¿Õ + return OK; +} + +//Ëã·¨3.12¡¡ÇóÑ­»·¶ÓÁеij¤¶È +int QueueLength(SqQueue Q) {//·µ»ØQµÄÔªËØ¸öÊý£¬¼´¶ÓÁеij¤¶È + return (Q.rear - Q.front + MAXQSIZE) % MAXQSIZE; +} + +//Ëã·¨3.13¡¡Ñ­»·¶ÓÁеÄÈë¶Ó +Status EnQueue(SqQueue &Q, QElemType e) {//²åÈëÔªËØeΪQµÄеĶÓÎ²ÔªËØ + if ((Q.rear + 1) % MAXQSIZE == Q.front) //βָÕëÔÚÑ­»·ÒâÒåÉϼÓ1ºóµÈÓÚÍ·Ö¸Õ룬±íÃ÷¶ÓÂú + return ERROR; + Q.base[Q.rear] = e; //ÐÂÔªËØ²åÈë¶Óβ + Q.rear = (Q.rear + 1) % MAXQSIZE; //¶ÓβָÕë¼Ó1 + return OK; +} + +//Ëã·¨3.14¡¡Ñ­»·¶ÓÁеijö¶Ó +Status DeQueue(SqQueue &Q, QElemType &e) {//ɾ³ýQµÄ¶ÓÍ·ÔªËØ£¬ÓÃe·µ»ØÆäÖµ + if (Q.front == Q.rear) + return ERROR; //¶Ó¿Õ + e = Q.base[Q.front]; //±£´æ¶ÓÍ·ÔªËØ + Q.front = (Q.front + 1) % MAXQSIZE; //¶ÓÍ·Ö¸Õë¼Ó1 + return OK; +} + +//Ëã·¨3.15¡¡È¡Ñ­»·¶ÓÁеĶÓÍ·ÔªËØ +SElemType GetHead(SqQueue Q) {//·µ»ØQµÄ¶ÓÍ·ÔªËØ£¬²»Ð޸ĶÓÍ·Ö¸Õë + if (Q.front != Q.rear) //¶ÓÁÐ·Ç¿Õ + return Q.base[Q.front]; //·µ»Ø¶ÓÍ·ÔªËØµÄÖµ£¬¶ÓÍ·Ö¸Õë²»±ä +} + +int main() { + int choose, flag = 0; + SqQueue Q; + QElemType e, j; + cout << "1.³õʼ»¯\n"; + cout << "2.Èë¶Ó\n"; + cout << "3.¶Á¶ÓÍ·ÔªËØ\n"; + cout << "4.³ö¶Ó\n"; + cout << "0.Í˳ö\n\n"; + + choose = -1; + while (choose != 0) { + cout << "ÇëÑ¡Ôñ:"; + cin >> choose; + switch (choose) { + case 1://Ëã·¨3.16¡¡Á´¶ÓµÄ³õʼ»¯ + if (InitQueue(Q)) { + flag = 1; + cout << "³É¹¦¶Ô¶ÓÁнøÐгõʼ»¯\n\n"; + } else + cout << "³õʼ»¯¶ÓÁÐʧ°Ü\n\n"; + break; + case 2: {//Ëã·¨3.17¡¡Á´¶ÓµÄÈë¶Ó + fstream file; + file.open("QNode.txt"); + if (!file) { + cout << "´íÎó£¡Î´ÕÒµ½Îļþ£¡\n\n" << endl; + exit(ERROR); + } + if (flag) { + flag = 1; + cout << "Èë¶ÓµÄÔªËØÒÀ´ÎΪ£º\n"; + while (!file.eof()) { + file >> j; + if (file.fail()) + break; + else { + EnQueue(Q, j); + cout << j << " "; + } + } + cout << endl << endl; + } else + cout << "¶ÓÁÐ佨Á¢£¬ÇëÖØÐÂÑ¡Ôñ\n\n"; + file.close(); + } + break; + case 3://Ëã·¨3.19¡¡È¡Á´¶ÓµÄ¶ÓÍ·ÔªËØ + if (flag != -1 && flag != 0) + cout << "¶ÓÍ·ÔªËØÎª£º\n" << GetHead(Q) << endl << endl; + else + cout << "¶ÓÁÐÖÐÎÞÔªËØ£¬ÇëÖØÐÂÑ¡Ôñ\n" << endl; + break; + case 4://Ëã·¨3.18¡¡Á´¶ÓµÄ³ö¶Ó + cout << "ÒÀ´Îµ¯³öµÄ¶ÓÍ·ÔªËØÎª:\n"; + while (DeQueue(Q, e)) { + flag = -1; + cout << e << " "; + } + cout << endl << endl; + break; + } + } + return 0; +} \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.11-3.15/QNode.txt b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.11-3.15/QNode.txt new file mode 100644 index 0000000..1f30c63 --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.11-3.15/QNode.txt @@ -0,0 +1,4 @@ +A +B +C +D \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.16-3.19/3.16-3.19.cpp b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.16-3.19/3.16-3.19.cpp new file mode 100644 index 0000000..abb928f --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.16-3.19/3.16-3.19.cpp @@ -0,0 +1,126 @@ +/***Á´¶ÓµÄ»ù±¾²Ù×÷***/ + +#include +#include +using namespace std; + +#define OK 1 +#define ERROR 0 +#define OVERFLOW -2 +typedef char QElemType; +typedef int Status; +typedef char SElemType; + +//- - - - - ¶ÓÁеÄÁ´Ê½´æ´¢½á¹¹- - - - - +typedef struct QNode { + QElemType data; + struct QNode *next; +} QNode, *QueuePtr; +typedef struct { + QueuePtr front; //¶ÓÍ·Ö¸Õë + QueuePtr rear; //¶ÓβָÕë +} LinkQueue; + +//Ëã·¨3.16¡¡Á´¶ÓµÄ³õʼ»¯ +Status InitQueue(LinkQueue &Q) {//¹¹ÔìÒ»¸ö¿Õ¶ÓÁÐQ + Q.front = Q.rear = new QNode; //Éú³Éнáµã×÷Ϊͷ½áµã£¬¶ÓÍ·ºÍ¶ÓβָÕëÖ¸Ïò´Ë½áµã + Q.front->next = NULL; //Í·½áµãµÄÖ¸ÕëÓòÖÃ¿Õ + return OK; +} + +//Ëã·¨3.17¡¡Á´¶ÓµÄÈë¶Ó +Status EnQueue(LinkQueue &Q, QElemType e) {//²åÈëÔªËØeΪQµÄеĶÓÎ²ÔªËØ + QueuePtr p; + p = new QNode; //ΪÈë¶ÓÔªËØ·ÖÅä½áµã¿Õ¼ä£¬ÓÃÖ¸ÕëpÖ¸Ïò + p->data = e; //½«Ð½áµãÊý¾ÝÓòÖÃΪe + p->next = NULL; + Q.rear->next = p; //½«Ð½áµã²åÈëµ½¶Óβ + Q.rear = p; //Ð޸ĶÓβָÕë + return OK; +} + +//Ëã·¨3.18¡¡Á´¶ÓµÄ³ö¶Ó +Status DeQueue(LinkQueue &Q, QElemType &e) {//ɾ³ýQµÄ¶ÓÍ·ÔªËØ£¬ÓÃe·µ»ØÆäÖµ + QueuePtr p; + if (Q.front == Q.rear) + return ERROR; //Èô¶ÓÁпգ¬Ôò·µ»ØERROR + p = Q.front->next; //pÖ¸Ïò¶ÓÍ·ÔªËØ + e = p->data; //e±£´æ¶ÓÍ·ÔªËØµÄÖµ + Q.front->next = p->next; //ÐÞ¸ÄÍ·Ö¸Õë + if (Q.rear == p) + Q.rear = Q.front; //×îºóÒ»¸öÔªËØ±»É¾£¬¶ÓβָÕëÖ¸ÏòÍ·½áµã + delete p; //ÊÍ·ÅÔ­¶ÓÍ·ÔªËØµÄ¿Õ¼ä + return OK; +} + +//Ëã·¨3.19¡¡È¡Á´¶ÓµÄ¶ÓÍ·ÔªËØ +SElemType GetHead(LinkQueue Q) {//·µ»ØQµÄ¶ÓÍ·ÔªËØ£¬²»Ð޸ĶÓÍ·Ö¸Õë + if (Q.front != Q.rear) //¶ÓÁÐ·Ç¿Õ + return Q.front->next->data; //·µ»Ø¶ÓÍ·ÔªËØµÄÖµ£¬¶ÓÍ·Ö¸Õë²»±ä +} + +int main() { + int choose, flag = 0; + LinkQueue Q; + QElemType e, j; + cout << "1.³õʼ»¯\n"; + cout << "2.Èë¶Ó\n"; + cout << "3.¶Á¶ÓÍ·ÔªËØ\n"; + cout << "4.³ö¶Ó\n"; + cout << "0.Í˳ö\n\n"; + + choose = -1; + while (choose != 0) { + cout << "ÇëÑ¡Ôñ:"; + cin >> choose; + switch (choose) { + case 1://Ëã·¨3.16¡¡Á´¶ÓµÄ³õʼ»¯ + if (InitQueue(Q)) { + flag = 1; + cout << "³É¹¦¶Ô¶ÓÁнøÐгõʼ»¯\n\n"; + } else + cout << "³õʼ»¯¶ÓÁÐʧ°Ü\n\n"; + break; + case 2: {//Ëã·¨3.17¡¡Á´¶ÓµÄÈë¶Ó + fstream file; + file.open("QNode.txt"); + if (!file) { + cout << "´íÎó£¡Î´ÕÒµ½Îļþ£¡\n\n" << endl; + exit(ERROR); + } + if (flag) { + flag = 1; + cout << "Èë¶ÓµÄÔªËØÒÀ´ÎΪ£º\n"; + while (!file.eof()) { + file >> j; + if (file.fail()) + break; + else { + EnQueue(Q, j); + cout << j << " "; + } + } + cout << endl << endl; + } else + cout << "¶ÓÁÐ佨Á¢£¬ÇëÖØÐÂÑ¡Ôñ\n\n"; + file.close(); + } + break; + case 3://Ëã·¨3.19¡¡È¡Á´¶ÓµÄ¶ÓÍ·ÔªËØ + if (flag != -1 && flag != 0) + cout << "¶ÓÍ·ÔªËØÎª£º\n" << GetHead(Q) << endl << endl; + else + cout << "¶ÓÁÐÖÐÎÞÔªËØ£¬ÇëÖØÐÂÑ¡Ôñ\n" << endl; + break; + case 4://Ëã·¨3.18¡¡Á´¶ÓµÄ³ö¶Ó + cout << "ÒÀ´Îµ¯³öµÄ¶ÓÍ·ÔªËØÎª:\n"; + while (DeQueue(Q, e)) { + flag = -1; + cout << e << " "; + } + cout << endl << endl; + break; + } + } + return 0; +} \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.16-3.19/QNode.txt b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.16-3.19/QNode.txt new file mode 100644 index 0000000..1f30c63 --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.16-3.19/QNode.txt @@ -0,0 +1,4 @@ +A +B +C +D \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.20/3.20.cpp b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.20/3.20.cpp new file mode 100644 index 0000000..e89215f --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.20/3.20.cpp @@ -0,0 +1,69 @@ +/***Á´Õ»ÊµÏÖÊýÖÆµÄת»»***/ + +#include +using namespace std; + +#define OK 1 +#define ERROR 0 +#define OVERFLOW -2 + +typedef int Status; +typedef struct SNode { + int data; + struct SNode *next; +} SNode, *LinkStack; + +Status InitStack(LinkStack &S) { + S = NULL; + return OK; +} +bool StackEmpty(LinkStack S) { + if (!S) + return true; + return false; +} +Status Push(LinkStack &S, int e) { + LinkStack p; + p = new SNode; + if (!p) { + return OVERFLOW; + } + p->data = e; + p->next = S; + S = p; + return OK; +} +Status Pop(LinkStack &S, int &e) { + LinkStack p; + if (!S) + return ERROR; + e = S->data; + p = S; + S = S->next; + delete p; + return OK; +} +//Ëã·¨3.20¡¡ÊýÖÆµÄת»»(Á´Õ»ÊµÏÖ) +void conversion(int N) {//¶ÔÓÚÈÎÒâÒ»¸ö·Ç¸ºÊ®½øÖÆÊý£¬´òÓ¡Êä³öÓëÆäµÈÖµµÄ°Ë½øÖÆÊý + int e; + LinkStack S; + InitStack(S); //³õʼ»¯¿ÕÕ»S + while (N) //µ±N·ÇÁãʱ,Ñ­»· + { + Push(S, N % 8); //°ÑNÓë8ÇóÓàµÃµ½µÄ°Ë½øÖÆÊýѹÈëÕ»S + N = N / 8; //N¸üÐÂΪNÓë8µÄÉÌ + } + while (!StackEmpty(S)) //µ±Õ»S·Ç¿Õʱ£¬Ñ­»· + { + Pop(S, e); //µ¯³öÕ»¶¥ÔªËØe + cout << e; //Êä³öe + } +} +int main() {//¶ÔÓÚÊäÈëµÄÈÎÒâÒ»¸ö·Ç¸ºÊ®½øÖÆÊý£¬´òÓ¡Êä³öÓëÆäµÈÖµµÄ°Ë½øÖÆÊý + int n, e; + cout << "ÊäÈëÒ»¸ö·Ç¸ºÊ®½øÖÆÊý:" << endl; + cin >> n; + + conversion(n); + return 0; +} \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.21/3.21.cpp b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.21/3.21.cpp new file mode 100644 index 0000000..abbc702 --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.21/3.21.cpp @@ -0,0 +1,96 @@ +/***Á´Õ»ÊµÏÖÀ¨ºÅÆ¥Åä***/ + +#include +using namespace std; + +#define OK 1 +#define ERROR 0 +#define OVERFLOW -2 +typedef char SElemType; +typedef int Status; +typedef struct SNode { + int data; + struct SNode *next; +} SNode, *LinkStack; + +Status InitStack(LinkStack &S) { + S = NULL; + return OK; +} +bool StackEmpty(LinkStack S) { + if (!S) + return true; + return false; +} +Status Push(LinkStack &S, SElemType e) { + SNode *p = new SNode; + if (!p) { + return OVERFLOW; + } + p->data = e; + p->next = S; + S = p; + return OK; +} +Status Pop(LinkStack &S, SElemType &e) { + SNode *p; + if (!S) + return ERROR; + e = S->data; + p = S; + S = S->next; + delete p; + return OK; +} +Status GetTop(LinkStack &S) { + if (!S) + return ERROR; + return S->data; +} + +//Ëã·¨3.21¡¡À¨ºÅµÄÆ¥Åä +Status Matching() {//¼ìÑé±í´ïʽÖÐËùº¬À¨ºÅÊÇ·ñÕýÈ·Æ¥Å䣬Èç¹ûÆ¥Å䣬Ôò·µ»Øtrue£¬·ñÔò·µ»Øfalse + //±í´ïʽÒÔ¡°#¡±½áÊø + char ch; + SElemType x; + LinkStack S; + InitStack(S); //³õʼ»¯¿ÕÕ» + int flag = 1; //±ê¼ÇÆ¥Åä½á¹ûÒÔ¿ØÖÆÑ­»·¼°·µ»Ø½á¹û + cin >> ch; //¶ÁÈëµÚÒ»¸ö×Ö·û + while (ch != '#' && flag) //¼ÙÉè±í´ïʽÒÔ¡°#¡±½áβ + { + switch (ch) { + case '[' : + case '(': //ÈôÊÇ×óÀ¨ºÅ£¬Ôò½«ÆäѹÈëÕ» + Push(S, ch); + break; + case ')': //ÈôÊÇ¡°)¡±£¬Ôò¸ù¾Ýµ±Ç°Õ»¶¥ÔªËصÄÖµ·ÖÇé¿ö¿¼ÂÇ + if (!StackEmpty(S) && GetTop(S) == '(') + Pop(S, x); //ÈôÕ»·Ç¿ÕÇÒÕ»¶¥ÔªËØÊÇ¡°(¡±£¬ÔòÕýÈ·Æ¥Åä + else + flag = 0; //ÈôÕ»¿Õ»òÕ»¶¥ÔªËز»ÊÇ¡°(¡±£¬Ôò´íÎóʧ°Ü + break; + case ']': //ÈôÊÇ¡°]¡±£¬Ôò¸ù¾Ýµ±Ç°Õ»¶¥ÔªËصÄÖµ·ÖÇé¿ö¿¼ÂÇ + if (!StackEmpty(S) && GetTop(S) == '[') + Pop(S, x); //ÈôÕ»·Ç¿ÕÇÒÕ»¶¥ÔªËØÊÇ¡°[¡±£¬ÔòÕýÈ·Æ¥Åä + else + flag = 0; //ÈôÕ»¿Õ»òÕ»¶¥ÔªËز»ÊÇ¡°[¡±£¬Ôò´íÎóÆ¥Åä + break; + } //switch + cin >> ch; //¼ÌÐø¶ÁÈëÏÂÒ»¸ö×Ö·û + } //while + if (StackEmpty(S) && flag) + return true; //Æ¥Åä³É¹¦ + else + return false; //Æ¥Åäʧ°Ü +} +int main() { + LinkStack S; + cout << "ÇëÊäÈë´ýÆ¥ÅäµÄ±í´ïʽ£¬ÒÔ¡°#¡±½áÊø£º" << endl; + int flag = (int) Matching(); + if (flag) + cout << "À¨ºÅÆ¥Åä³É¹¦£¡" << endl; + else + cout << "À¨ºÅÆ¥Åäʧ°Ü£¡" << endl; + return 0; +} diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.22/3.22.cpp b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.22/3.22.cpp new file mode 100644 index 0000000..7f1635b --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.22/3.22.cpp @@ -0,0 +1,29 @@ +#include"3.22.h" + +int menu() { + int c; + cout << "0-9ÒÔÄڵĶàÏîʽ¼ÆËã" << endl; + cout << "1.¼ÆËã" << endl; + cout << "0.Í˳ö\n" << endl; + cout << "Ñ¡Ôñ£º"; + cin >> c; + return c; +} + +void main() { + while (1) { + switch (menu()) { + case 1: { + cout << "ÇëÊäÈëÒª¼ÆËãµÄ±í´ïʽ£¨²Ù×÷ÊýºÍ½á¹û¶¼ÔÚ0-9µÄ·¶Î§ÄÚ£¬ÒÔ#½áÊø£©£º" << endl; + char res = EvaluateExpression();//Ëã·¨3.22¡¡±í´ïʽÇóÖµ + cout << "¼ÆËã½á¹ûΪ" << res - 48 << endl << endl; + } + break; + case 0: + cout << "Í˳ö³É¹¦\n" << endl; + exit(0); + default: + break; + } + } +} \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.22/3.22.h b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.22/3.22.h new file mode 100644 index 0000000..d21e0f4 --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.22/3.22.h @@ -0,0 +1,117 @@ +/***Á´Õ»ÊµÏÖ±í´ïʽÇóÖµ***/ + +#include +using namespace std; + +const char oper[7] = { '+', '-', '*', '/', '(', ')', '#' }; +#define OK 1 +#define ERROR 0 +#define OVERFLOW -2 +typedef char SElemType; +typedef int Status; +typedef struct SNode { + int data; + struct SNode *next; +} SNode, *LinkStack; + +Status InitStack(LinkStack &S) { + S = NULL; + return OK; +} +bool StackEmpty(LinkStack S) { + if (!S) + return true; + return false; +} +Status Push(LinkStack &S, SElemType e) { + SNode *p = new SNode; + if (!p) { + return OVERFLOW; + } + p->data = e; + p->next = S; + S = p; + return OK; +} +Status Pop(LinkStack &S, SElemType &e) { + SNode *p; + if (!S) + return ERROR; + e = S->data; + p = S; + S = S->next; + delete p; + return OK; +} +Status GetTop(LinkStack &S) { + if (!S) + return ERROR; + + return S->data; +} +bool In(char ch) {//ÅжÏchÊÇ·ñΪÔËËã·û + for (int i = 0; i < 7; i++) { + if (ch == oper[i]) { + return true; + } + } + return false; +} +char Precede(char theta1, char theta2) {//ÅжÏÔËËã·ûÓÅÏȼ¶ + if ((theta1 == '(' && theta2 == ')') || (theta1 == '#' && theta2 == '#')) { + return '='; + } else if (theta1 == '(' || theta1 == '#' || theta2 == '(' || (theta1 + == '+' || theta1 == '-') && (theta2 == '*' || theta2 == '/')) { + return '<'; + } else + return '>'; +} +char Operate(char first, char theta, char second) {//¼ÆËãÁ½ÊýÔËËã½á¹û + switch (theta) { + case '+': + return (first - '0') + (second - '0') + 48; + case '-': + return (first - '0') - (second - '0') + 48; + case '*': + return (first - '0') * (second - '0') + 48; + case '/': + return (first - '0') / (second - '0') + 48; + } + return 0; +} + +//Ëã·¨3.22¡¡±í´ïʽÇóÖµ +char EvaluateExpression() {//ËãÊõ±í´ïʽÇóÖµµÄËã·ûÓÅÏÈËã·¨£¬ÉèOPTRºÍOPND·Ö±ðΪÔËËã·ûÕ»ºÍ²Ù×÷ÊýÕ» + LinkStack OPTR, OPND; + char ch, theta, a, b, x, top; + InitStack(OPND); //³õʼ»¯OPNDÕ» + InitStack(OPTR); //³õʼ»¯OPTRÕ» + Push(OPTR, '#'); //½«±í´ïʽÆðʼ·û¡°#¡±Ñ¹ÈëOPTRÕ» + cin >> ch; + while (ch != '#' || (GetTop(OPTR) != '#')) //±í´ïʽûÓÐɨÃèÍê±Ï»òOPTRµÄÕ»¶¥ÔªËز»Îª¡°#¡± + { + if (!In(ch)) { + Push(OPND, ch); + cin >> ch; + } //ch²»ÊÇÔËËã·ûÔò½øOPNDÕ» + else + switch (Precede(GetTop(OPTR), ch)) //±È½ÏOPTRµÄÕ»¶¥ÔªËغÍchµÄÓÅÏȼ¶ + { + case '<': + Push(OPTR, ch); + cin >> ch; //µ±Ç°×Ö·ûchѹÈëOPTRÕ»£¬¶ÁÈëÏÂÒ»×Ö·ûch + break; + case '>': + Pop(OPTR, theta); //µ¯³öOPTRÕ»¶¥µÄÔËËã·û + Pop(OPND, b); + Pop(OPND, a); //µ¯³öOPNDÕ»¶¥µÄÁ½¸öÔËËãÊý + Push(OPND, Operate(a, theta, b)); //½«ÔËËã½á¹ûѹÈëOPNDÕ» + break; + case '=': //OPTRµÄÕ»¶¥ÔªËØÊÇ¡°(¡±ÇÒchÊÇ¡°)¡± + Pop(OPTR, x); + cin >> ch; //µ¯³öOPTRÕ»¶¥µÄ¡°(¡±£¬¶ÁÈëÏÂÒ»×Ö·ûch + break; + } //switch + } //while + return GetTop(OPND); //OPNDÕ»¶¥ÔªËؼ´Îª±í´ïʽÇóÖµ½á¹û +} \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.23/3.23.cpp b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.23/3.23.cpp new file mode 100644 index 0000000..b7edff7 --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.23/3.23.cpp @@ -0,0 +1,18 @@ +#include"3.23.h" + +Person dancer[MAXQSIZE]; +int main() { + int i = 0; + fstream file; + file.open("DancePartner.txt"); + if (!file) { + cout << "´íÎó£¡Î´ÕÒµ½Îļþ£¡\n\n" << endl; + exit( ERROR); + } + while (!file.eof()) { + file >> dancer[i].name >> dancer[i].sex; + i++; + } + DancePartner(dancer, i + 1); + return 0; +} \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.23/3.23.h b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.23/3.23.h new file mode 100644 index 0000000..fb2721d --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.23/3.23.h @@ -0,0 +1,89 @@ +#include +#include +#include +#define MAXQSIZE 100//¶ÓÁпÉÄÜ´ïµ½µÄ×î´ó³¤¶È +#define OK 1 +#define ERROR 0 +#define OVERFLOW -2 +using namespace std; + +typedef struct { + char name[20]; //ÐÕÃû + char sex; //ÐÔ±ð£¬'F'±íʾŮÐÔ£¬'M'±íʾÄÐÐÔ +} Person; + +//- - - - - ¶ÓÁеÄ˳Ðò´æ´¢½á¹¹- - - - - +typedef struct { + Person *base; //¶ÓÁÐÖÐÊý¾ÝÔªËØÀàÐÍΪPerson + int front; //Í·Ö¸Õë + int rear; //βָÕë +} SqQueue; + +SqQueue Mdancers, Fdancers; //·Ö±ð´æ·ÅÄÐÊ¿ºÍŮʿÈë¶ÓÕß¶ÓÁÐ + +int InitQueue(SqQueue &Q) {//¹¹ÔìÒ»¸ö¿Õ¶ÓÁÐQ + Q.base = new Person[MAXQSIZE]; //Ϊ¶ÓÁзÖÅäÒ»¸ö×î´óÈÝÁ¿ÎªMAXSIZEµÄÊý×é¿Õ¼ä + if (!Q.base) + exit( OVERFLOW); //´æ´¢·ÖÅäʧ°Ü + Q.front = Q.rear = 0; //Í·Ö¸ÕëºÍβָÕëÖÃΪÁ㣬¶ÓÁÐΪ¿Õ + return OK; +} + +int EnQueue(SqQueue &Q, Person e) {//²åÈëÔªËØeΪQµÄеĶÓÎ²ÔªËØ + if ((Q.rear + 1) % MAXQSIZE == Q.front) //βָÕëÔÚÑ­»·ÒâÒåÉϼÓ1ºóµÈÓÚÍ·Ö¸Õ룬±íÃ÷¶ÓÂú + return ERROR; + Q.base[Q.rear] = e; //ÐÂÔªËØ²åÈë¶Óβ + Q.rear = (Q.rear + 1) % MAXQSIZE; //¶ÓβָÕë¼Ó1 + return OK; +} + +int QueueEmpty(SqQueue &Q) { + if (Q.front == Q.rear) //¶Ó¿Õ + return OK; + else + return ERROR; +} + +int DeQueue(SqQueue &Q, Person &e)//ɾ³ýQµÄ¶ÓÍ·ÔªËØ£¬ÓÃe·µ»ØÆäÖµ +{ + if (Q.front == Q.rear) + return ERROR; //¶Ó¿Õ + e = Q.base[Q.front]; //±£´æ¶ÓÍ·ÔªËØ + Q.front = (Q.front + 1) % MAXQSIZE; //¶ÓÍ·Ö¸Õë¼Ó1 + return OK; +} + +Person GetHead(SqQueue Q) {//·µ»ØQµÄ¶ÓÍ·ÔªËØ£¬²»Ð޸ĶÓÍ·Ö¸Õë + if (Q.front != Q.rear) //¶ÓÁÐ·Ç¿Õ + return Q.base[Q.front]; //·µ»Ø¶ÓÍ·ÔªËØµÄÖµ£¬¶ÓÍ·Ö¸Õë²»±ä +} + +//Ëã·¨3.23¡¡Îè°éÎÊÌâ +void DancePartner(Person dancer[], int num) {//½á¹¹Êý×édancerÖдæ·ÅÌøÎèµÄÄÐÅ®£¬numÊÇÌøÎèµÄÈËÊý¡£ + InitQueue(Mdancers); //ÄÐÊ¿¶ÓÁгõʼ»¯ + InitQueue(Fdancers); //Ůʿ¶ÓÁгõʼ»¯ + Person p; + for (int i = 0; i < num; i++) //ÒÀ´Î½«ÌøÎèÕ߸ù¾ÝÆäÐÔ±ðÈë¶Ó + { + p = dancer[i]; + if (p.sex == 'F') + EnQueue(Fdancers, p); //²åÈëÅ®¶Ó + else + EnQueue(Mdancers, p); //²åÈëÄÐ¶Ó + } + cout << "The dancing partners are:" << endl; + while (!QueueEmpty(Fdancers) && !QueueEmpty(Mdancers)) {//ÒÀ´ÎÊä³öÄÐÅ®Îè°éµÄÐÕÃû + DeQueue(Fdancers, p); //Ůʿ³ö¶Ó + cout << p.name << " "; //Êä³ö³ö¶ÓŮʿÐÕÃû + DeQueue(Mdancers, p); //ÄÐÊ¿³ö¶Ó + cout << p.name << endl; //Êä³ö³ö¶ÓÄÐÊ¿ÐÕÃû + } + if (!QueueEmpty(Fdancers)) { //Ůʿ¶ÓÁзǿգ¬Êä³ö¶ÓͷŮʿµÄÐÕÃû + p = GetHead(Fdancers); //ȡŮʿ¶ÓÍ· + cout << "The first man to get a partner is: " << endl; + cout << p.name << endl; + } else if (!QueueEmpty(Mdancers)) { //ÄÐÊ¿¶ÓÁзǿգ¬Êä³ö¶ÓÍ·ÄÐÊ¿µÄÐÕÃû + p = GetHead(Mdancers); //È¡ÄÐÊ¿¶ÓÍ· + cout << "The first woman to get a partner is: " << p.name << endl; + } +} \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.23/DancePartner.txt b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.23/DancePartner.txt new file mode 100644 index 0000000..2f9b4ec --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.23/DancePartner.txt @@ -0,0 +1,18 @@ +۳ѩÀâ F +¸ßÐÀÑÅ F +ÕÅÌðÔ´ F +Ðíµ¤µ¤ F +ȽСϪ F +ÖÜÈçÒâ F +ºú˼ç÷ F +½¯ÑÅç÷ F +½ð³ÇÎä M +ÎâÑå׿ M +Íõ˼´Ï M +¹ÅÌìÀÖ M +ÖܽÜÂ× M +ÀîÃôºÆ M +ÀîÖÓ˶ M +ÂíÐ¡ÔÆ M +ÕÅÖÇÁØ M +ÍõÁ¦ºê M \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.5-3.8/3.5-3.8.cpp b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.5-3.8/3.5-3.8.cpp new file mode 100644 index 0000000..4eef629 --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.5-3.8/3.5-3.8.cpp @@ -0,0 +1,115 @@ +/***Á´Õ»µÄʵÏÖ***/ +#include +#include +using namespace std; + +#define OK 1 +#define ERROR 0 +#define OVERFLOW -2 +typedef int Status; +typedef char SElemType; + +typedef struct StackNode { + SElemType data; + struct StackNode *next; +} StackNode, *LinkStack; + +//Ëã·¨3.5¡¡Á´Õ»µÄ³õʼ»¯ +Status InitStack(LinkStack &S) { // ¹¹ÔìÒ»¸ö¿ÕÕ» S£¬Õ»¶¥Ö¸ÕëÖÃ¿Õ + S = NULL; + return OK; +} + +//Ëã·¨3.6¡¡Á´Õ»µÄÈëÕ» +Status Push(LinkStack &S, SElemType e) {//ÔÚÕ»¶¥²åÈëÔªËØe + LinkStack p; + p = new StackNode; //Éú³Éнáµã + p->data = e; //½«Ð½áµãÊý¾ÝÓòÖÃΪe + p->next = S; //½«Ð½áµã²åÈëÕ»¶¥ + S = p; //ÐÞ¸ÄÕ»¶¥Ö¸ÕëΪp + return OK; +} + +//Ëã·¨3.7¡¡Á´Õ»µÄ³öÕ» +Status Pop(LinkStack &S, SElemType &e) {//ɾ³ýSµÄÕ»¶¥ÔªËØ£¬ÓÃe·µ»ØÆäÖµ + LinkStack p; + if (S == NULL) + return ERROR; //Õ»¿Õ + e = S->data; //½«Õ»¶¥ÔªËظ³¸øe + p = S; //ÓÃpÁÙʱ±£´æÕ»¶¥ÔªËؿռ䣬ÒÔ±¸ÊÍ·Å + S = S->next; //ÐÞ¸ÄÕ»¶¥Ö¸Õë + delete p; //ÊÍ·ÅÔ­Õ»¶¥ÔªËصĿռä + return OK; +} +//Ëã·¨3.8¡¡È¡Á´Õ»µÄÕ»¶¥ÔªËØ +SElemType GetTop(LinkStack S) {//·µ»ØSµÄÕ»¶¥ÔªËØ£¬²»ÐÞ¸ÄÕ»¶¥Ö¸Õë + if (S != NULL) //Õ»·Ç¿Õ + return S->data; //·µ»ØÕ»¶¥ÔªËصÄÖµ£¬Õ»¶¥Ö¸Õë²»±ä +} + +int main() { + LinkStack s; + int choose, flag = 0; + SElemType j, t; + cout << "1.³õʼ»¯\n"; + cout << "2.ÈëÕ»\n"; + cout << "3.¶ÁÕ»¶¥ÔªËØ\n"; + cout << "4.³öÕ»\n"; + cout << "0.Í˳ö\n\n"; + + choose = -1; + while (choose != 0) { + cout << "ÇëÑ¡Ôñ:"; + cin >> choose; + switch (choose) { + case 1://Ëã·¨3.5¡¡Á´Õ»µÄ³õʼ»¯ + if (InitStack(s)) { + flag = 1; + cout << "³É¹¦¶ÔÕ»½øÐгõʼ»¯\n\n"; + } else + cout << "³õʼ»¯Õ»Ê§°Ü\n\n"; + break; + case 2: {//Ëã·¨3.6¡¡Á´Õ»µÄÈëÕ» + fstream file; + file.open("SqStack.txt"); + if (!file) { + cout << "´íÎó£¡Î´ÕÒµ½Îļþ£¡\n\n" << endl; + exit(ERROR); + } + if (flag) { + flag = 1; + cout << "½øÕ»ÔªËØÒÀ´ÎΪ£º\n"; + while (!file.eof()) { + file >> j; + if (file.fail()) + break; + else { + Push(s, j); + cout << j << " "; + } + } + cout << endl << endl; + } else + cout << "ջ佨Á¢£¬ÇëÖØÐÂÑ¡Ôñ\n\n"; + file.close(); + } + break; + case 3://Ëã·¨3.8¡¡È¡Á´Õ»µÄÕ»¶¥ÔªËØ + if (flag != -1 && flag != 0) + cout << "Õ»¶¥ÔªËØÎª£º\n" << GetTop(s) << endl << endl; + else + cout << "Õ»ÖÐÎÞÔªËØ£¬ÇëÖØÐÂÑ¡Ôñ\n" << endl; + break; + case 4://Ëã·¨3.7¡¡Á´Õ»µÄ³öÕ» + if (flag) { + cout << "ÒÀ´Îµ¯³öµÄÕ»¶¥ÔªËØÎª:\n"; + while (Pop(s, t)) + cout << t << " "; + cout << endl << endl; + } else + cout << "ջ佨Á¢£¬ÇëÖØÐÂÑ¡Ôñ\n\n"; + break; + } + } + return 0; +} diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.5-3.8/SqStack.txt b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.5-3.8/SqStack.txt new file mode 100644 index 0000000..1f30c63 --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.5-3.8/SqStack.txt @@ -0,0 +1,4 @@ +A +B +C +D \ No newline at end of file diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.9/3.9.cpp b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.9/3.9.cpp new file mode 100644 index 0000000..9dad058 --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第3ç« /3.9/3.9.cpp @@ -0,0 +1,53 @@ +/***ÒÀ´ÎÊä³öÁ´±íÖеĸ÷¸ö½áµã***/ + +#include +using namespace std; + +#define OK 1 +#define ERROR 0 +#define OVERFLOW -2 +typedef int Status; +typedef char ElemType; +typedef struct LNode { + ElemType data; //½áµãµÄÊý¾ÝÓò + LNode *next; //½áµãµÄÖ¸ÕëÓò +} LNode, *LinkList;//Í·Ö¸Õë + +//ºó²å·¨´´½¨Á´±íËã·¨ +void CreateList_L(LinkList &L, int n) { + L = new LNode; + L->next = NULL; + LNode *p, *r; + r = L; + for (int i = 0; i < n; i++) { + p = new LNode; + cin >> p->data; + p->next = NULL; + r->next = p; + r = p; + } +} + +//Ëã·¨3.9¡¡±éÀúÊä³öÁ´±íÖи÷¸ö½áµãµÄµÝ¹éËã·¨ +void TraverseList(LinkList p) { + if (p == NULL) + return; //µÝ¹éÖÕÖ¹ + else { + cout << p->data << endl; //Êä³öµ±Ç°½áµãµÄÊý¾ÝÓò + TraverseList(p->next); //pÖ¸Ïòºó¼ÌÖ¸µã¼ÌÐøµÝ¹é + } +} + +int main() { + int n; + LinkList L; + //InitList(L); + cout << "ÇëÊäÈëÔªËØ¸öÊý£º" << endl; + cin >> n; + cout << "ÇëÊäÈëÁ´±íÔªËØ(ÒÔ¿Õ¸ñ¸ô¿ª£¬°´»Ø³µ½áÊø)£º" << endl; + CreateList_L(L, n); //ºó²å·¨´´½¨Á´±íËã·¨ + cout << "Á´±íÖеÄÔªËØÒÀ´ÎΪ£º" << endl; + TraverseList(L->next); + cout << endl; + return 0; +} diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第4ç« /4.1.cpp b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第4ç« /4.1.cpp new file mode 100644 index 0000000..330d34b --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第4ç« /4.1.cpp @@ -0,0 +1,60 @@ +/***×Ö·û´®Æ¥ÅäËã·¨***/ +#include +#include +using namespace std; + +#define OK 1 +#define ERROR 0 +#define OVERFLOW -2 +typedef int Status; +#define MAXSTRLEN 255 //Óû§¿ÉÔÚ255ÒÔÄÚ¶¨Òå×´®³¤ +typedef char SString[MAXSTRLEN+1]; //0ºÅµ¥Ôª´æ·Å´®µÄ³¤¶È + +Status StrAssign(SString T, char *chars) { //Éú³ÉÒ»¸öÆäÖµµÈÓÚcharsµÄ´®T + int i; + if (strlen(chars) > MAXSTRLEN) + return ERROR; + else { + T[0] = strlen(chars); + for (i = 1; i <= T[0]; i++) + T[i] = *(chars + i - 1); + return OK; + } +} + +//Ëã·¨4.1¡¡BFËã·¨ +int Index(SString S, SString T, int pos) +{ + //·µ»ØÄ£Ê½TÔÚÖ÷´®SÖеÚpos¸ö×Ö·ûÖ®ºóµÚsÒ»´Î³öÏÖµÄλÖá£Èô²»´æÔÚ£¬Ôò·µ»ØÖµÎª0 + //ÆäÖУ¬T·Ç¿Õ£¬1¡Üpos¡ÜStrLength(S) + int i = pos; + int j = 1; + while(i <= S[0]&&j <= T[0]) + { + if(S[i]==T[j]) + { + ++i; + ++j; + } //¼ÌÐø±È½Ïºó¼Ì×Ö·û + else + { + i=i-j+2; + j=1; + } //Ö¸ÕëºóÍËÖØÐ¿ªÊ¼Æ¥Åä + } + if (j > T[0]) + return i - T[0]; + else + return 0; + return 0; +}//Index + +int main() +{ + SString S; + StrAssign(S,"bbaaabbaba") ; + SString T; + StrAssign(T,"abb") ; + cout<<"Ö÷´®ºÍ×Ó´®ÔÚµÚ"< +#include +using namespace std; + +#define OK 1 +#define ERROR 0 +#define OVERFLOW -2 +typedef int Status; +#define MAXSTRLEN 255 //Óû§¿ÉÔÚ255ÒÔÄÚ¶¨Òå×´®³¤ +typedef char SString[MAXSTRLEN+1]; //0ºÅµ¥Ôª´æ·Å´®µÄ³¤¶È + +Status StrAssign(SString T, char *chars) { //Éú³ÉÒ»¸öÆäÖµµÈÓÚcharsµÄ´®T + int i; + if (strlen(chars) > MAXSTRLEN) + return ERROR; + else { + T[0] = strlen(chars); + for (i = 1; i <= T[0]; i++) + T[i] = *(chars + i - 1); + return OK; + } +} +//Ëã·¨4.3¡¡¼ÆËãnextº¯ÊýÖµ +void get_next(SString T, int next[]) +{ //Çóģʽ´®TµÄnextº¯ÊýÖµ²¢´æÈëÊý×énext + int i = 1, j = 0; + next[1] = 0; + while (i < T[0]) + if (j == 0 || T[i] == T[j]) + { + ++i; + ++j; + next[i] = j; + } + else + j = next[j]; +}//get_next + +//Ëã·¨4.2¡¡KMPËã·¨ +int Index_KMP(SString S, SString T, int pos, int next[]) +{ // ÀûÓÃģʽ´®TµÄnextº¯ÊýÇóTÔÚÖ÷´®SÖеÚpos¸ö×Ö·ûÖ®ºóµÄλÖõÄKMPËã·¨ + //ÆäÖУ¬T·Ç¿Õ£¬1¡Üpos¡ÜStrLength(S) + int i = pos, j = 1; + while (i <= S[0] && j <= T[0]) + if (j == 0 || S[i] == T[j]) // ¼ÌÐø±È½Ïºó¼Ì×Ö + { + ++i; + ++j; + } + else + j = next[j]; // ģʽ´®ÏòÓÒÒÆ¶¯ + if (j > T[0]) // Æ¥Åä³É¹¦ + return i - T[0]; + else + return 0; +}//Index_KMP + +int main() +{ + SString S; + StrAssign(S,"aaabbaba") ; + SString T; + StrAssign(T,"abb") ; + int *p = new int[T[0]+1]; // Éú³ÉTµÄnextÊý×é + get_next(T,p); + cout<<"Ö÷´®ºÍ×Ó´®ÔÚµÚ"< +#include +using namespace std; + +#define OK 1 +#define ERROR 0 +#define OVERFLOW -2 +typedef int Status; +#define MAXSTRLEN 255 //Óû§¿ÉÔÚ255ÒÔÄÚ¶¨Òå×´®³¤ +typedef char SString[MAXSTRLEN+1]; //0ºÅµ¥Ôª´æ·Å´®µÄ³¤¶È + +Status StrAssign(SString T, char *chars) { //Éú³ÉÒ»¸öÆäÖµµÈÓÚcharsµÄ´®T + int i; + if (strlen(chars) > MAXSTRLEN) + return ERROR; + else { + T[0] = strlen(chars); + for (i = 1; i <= T[0]; i++) + T[i] = *(chars + i - 1); + return OK; + } +} + +//Ëã·¨4.4¡¡¼ÆËãnextº¯ÊýÐÞÕýÖµ +void get_nextval(SString T, int nextval[]) +{ // Çóģʽ´®TµÄnextº¯ÊýÐÞÕýÖµ²¢´æÈëÊý×énextval + int i = 1, j = 0; + nextval[1] = 0; + while (i < T[0]) + if (j == 0 || T[i] == T[j]) + { + ++i; + ++j; + if (T[i] != T[j]) + nextval[i] = j; + else + nextval[i] = nextval[j]; + } else + j = nextval[j]; +}//get_nextval + +//Ëã·¨4.2¡¡KMPËã·¨ +int Index_KMP(SString S, SString T, int pos, int next[]) +{ // ÀûÓÃģʽ´®TµÄnextº¯ÊýÇóTÔÚÖ÷´®SÖеÚpos¸ö×Ö·ûÖ®ºóµÄλÖõÄKMPËã·¨ + //ÆäÖУ¬T·Ç¿Õ£¬1¡Üpos¡ÜStrLength(S) + int i = pos, j = 1; + while (i <= S[0] && j <= T[0]) + if (j == 0 || S[i] == T[j]) // ¼ÌÐø±È½Ïºó¼Ì×Ö + { + ++i; + ++j; + } + else + j = next[j]; // ģʽ´®ÏòÓÒÒÆ¶¯ + if (j > T[0]) // Æ¥Åä³É¹¦ + return i - T[0]; + else + return 0; +}//Index_KMP + +int main() +{ + SString S; + StrAssign(S,"babaaaabbaba") ; + SString T; + StrAssign(T,"abb") ; + int *p = new int[T[0]+1]; // Éú³ÉTµÄnextÊý×é + get_nextval(T,p); + cout<<"Ö÷´®ºÍ×Ó´®ÔÚµÚ"< +#include +#include +using namespace std; + +typedef struct{ + char ch[600]; //ÈôÊǷǿմ®£¬Ôò°´´®³¤·ÖÅä´æ´¢Çø£¬·ñÔòchΪNULL + int len; //´®³¤¶È +}HString; + + +int Index_BF(HString S,HString T,int pos) +{//·µ»ØÄ£Ê½TÔÚÖ÷´®SÖеÚpos¸ö×Ö·û¿ªÊ¼µÚÒ»´Î³öÏÖµÄλÖá£Èô²»´æÔÚ£¬Ôò·µ»ØÖµÎª0 + //ÆäÖУ¬T·Ç¿Õ£¬1¡Üpos¡ÜStrLength(S) + int i,j; + i=pos; j=1; + while(i<=S.len&&j<=T.len) + { + if(S.ch[i]==T.ch[j]){++i;++j;} //¼ÌÐø±È½Ïºó¼Ì×Ö·û + else{i=i-j+2;j=1;} //Ö¸ÕëºóÍËÖØÐ¿ªÊ¼Æ¥Åä + } + if(j>T.len) return i-T.len; + else return 0; +} + +void Virus_detection() +{ + int num,m,flag,i,j; char Vir[600]; + HString Virus,Person,temp; + ifstream inFile("²¡¶¾¸ÐȾ¼ì²âÊäÈëÊý¾Ý.txt"); + ofstream outFile("²¡¶¾¸ÐȾ¼ì²âÊä³ö½á¹û.txt"); + inFile>>num;//¶ÁÈ¡´ý¼ì²âµÄÈÎÎñÊý + while(num--) //ÒÀ´Î¼ì²âÿ¶Ô²¡¶¾DNAºÍÈ˵ÄDNAÊÇ·ñÆ¥Åä + { + inFile>>Virus.ch+1;//¶ÁÈ¡²¡¶¾DNAÐòÁÐ + inFile>>Person.ch+1;//¶ÁÈ¡È˵ÄDNAÐòÁÐ + strcpy(Vir,Virus.ch); + Virus.len=strlen(Virus.ch)-1; + Person.len=strlen(Person.ch)-1; + flag=0;//ÓÃÀ´±êʶÊÇ·ñÆ¥Å䣬³õʼΪ0£¬Æ¥ÅäºóΪ·Ç0 + m=Virus.len; + for(i=m+1,j=1;j<=m;j++) Virus.ch[i++]=Virus.ch[j]; + //Òò²¡¶¾Îª»·×´£¬¹Ê½«²¡¶¾µÄ³¤¶ÈÀ©´ó2±¶ + //¼´¿ÉÏßÐÔÈ¡µ½ËùÓ㤶ÈΪVirus.lenµÄ×Ö·û´® + Virus.ch[2*m+1]='\0'; //Ìí¼Ó½áÊø·ûºÅ + for(i=0;i +using namespace std; +typedef struct BiNode{ //¶þ²æÁ´±í¶¨Òå + char data; + struct BiNode *lchild,*rchild; +}BiTNode,*BiTree; + +//ÓÃËã·¨5.3 ÏÈÐò±éÀúµÄ˳Ðò½¨Á¢¶þ²æÁ´±í +void CreateBiTree(BiTree &T){ + //°´ÏÈÐò´ÎÐòÊäÈë¶þ²æÊ÷ÖнáµãµÄÖµ£¨Ò»¸ö×Ö·û£©£¬´´½¨¶þ²æÁ´±í±íʾµÄ¶þ²æÊ÷T + char ch; + cin >> ch; + if(ch=='#') T=NULL; //µÝ¹é½áÊø£¬½¨¿ÕÊ÷ + else{ + T=new BiTNode; + T->data=ch; //Éú³É¸ù½áµã + CreateBiTree(T->lchild); //µÝ¹é´´½¨×ó×ÓÊ÷ + CreateBiTree(T->rchild); //µÝ¹é´´½¨ÓÒ×ÓÊ÷ + } //else +} //CreateBiTree + +void InOrderTraverse(BiTree T){ + //ÖÐÐò±éÀú¶þ²æÊ÷TµÄµÝ¹éËã·¨ + if(T){ + InOrderTraverse(T->lchild); + cout << T->data; + InOrderTraverse(T->rchild); + } +} + +void main(){ + BiTree tree; + cout<<"ÇëÊäÈ뽨Á¢¶þ²æÁ´±íµÄÐòÁУº\n"; + CreateBiTree(tree); + cout<<"ÖÐÐò±éÀúµÄ½á¹ûΪ£º\n"; + InOrderTraverse(tree); + cout< +using namespace std; +typedef struct +{ + int weight; + int parent,lchild,rchild; +}HTNode,*HuffmanTree; + +void Select(HuffmanTree HT,int len,int &s1,int &s2) +{ + int i,min1=0x3f3f3f3f,min2=0x3f3f3f3f;//Ïȸ³Óè×î´óÖµ + for(i=1;i<=len;i++) + { + if(HT[i].weight>HT[i].weight; + /*¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D³õʼ»¯¹¤×÷½áÊø£¬ÏÂÃæ¿ªÊ¼´´½¨ºÕ·òÂüÊ÷¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D*/ + for(i=n+1;i<=m;++i) + { //ͨ¹ýn-1´ÎµÄÑ¡Ôñ¡¢É¾³ý¡¢ºÏ²¢À´´´½¨ºÕ·òÂüÊ÷ + Select(HT,i-1,s1,s2); + //ÔÚHT[k](1¡Ük¡Üi-1)ÖÐÑ¡ÔñÁ½¸öÆäË«Ç×ÓòΪ0ÇÒȨֵ×îСµÄ½áµã, + // ²¢·µ»ØËüÃÇÔÚHTÖеÄÐòºÅs1ºÍs2 + HT[s1].parent=i; + HT[s2].parent=i; + //µÃµ½Ð½áµãi£¬´ÓÉ­ÁÖÖÐɾ³ýs1£¬s2£¬½«s1ºÍs2µÄË«Ç×ÓòÓÉ0¸ÄΪi + HT[i].lchild=s1; + HT[i].rchild=s2 ; //s1,s2·Ö±ð×÷ΪiµÄ×óÓÒº¢×Ó + HT[i].weight=HT[s1].weight+HT[s2].weight; //i µÄȨֵΪ×óÓÒº¢×ÓȨֵ֮ºÍ + } //for + } // CreatHuffmanTree + +void main() +{ + HuffmanTree HT; + int n; + cout<<"ÇëÊäÈëÒ¶×Ó½áµãµÄ¸öÊý£º\n"; + cin>>n; + CreatHuffmanTree(HT,n); + cout<<"¹þ·òÂüÊ÷½¨Á¢Íê±Ï£¡\n"; +} diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.11.cpp b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.11.cpp new file mode 100644 index 0000000..e48a92f --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.11.cpp @@ -0,0 +1,105 @@ +//Ëã·¨5.11 ¸ù¾ÝºÕ·òÂüÊ÷ÇóºÕ·òÂü±àÂë +#include +using namespace std; +typedef struct +{ + int weight; + int parent,lchild,rchild; +}HTNode,*HuffmanTree; +typedef char **HuffmanCode; + +void Select(HuffmanTree HT,int len,int &s1,int &s2) +{ + int i,min1=0x3f3f3f3f,min2=0x3f3f3f3f;//Ïȸ³Óè×î´óÖµ + for(i=1;i<=len;i++) + { + if(HT[i].weight>HT[i].weight; + /*¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D³õʼ»¯¹¤×÷½áÊø£¬ÏÂÃæ¿ªÊ¼´´½¨ºÕ·òÂüÊ÷¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D*/ + for(i=n+1;i<=m;++i) + { //ͨ¹ýn-1´ÎµÄÑ¡Ôñ¡¢É¾³ý¡¢ºÏ²¢À´´´½¨ºÕ·òÂüÊ÷ + Select(HT,i-1,s1,s2); + //ÔÚHT[k](1¡Ük¡Üi-1)ÖÐÑ¡ÔñÁ½¸öÆäË«Ç×ÓòΪ0ÇÒȨֵ×îСµÄ½áµã, + // ²¢·µ»ØËüÃÇÔÚHTÖеÄÐòºÅs1ºÍs2 + HT[s1].parent=i; + HT[s2].parent=i; + //µÃµ½Ð½áµãi£¬´ÓÉ­ÁÖÖÐɾ³ýs1£¬s2£¬½«s1ºÍs2µÄË«Ç×ÓòÓÉ0¸ÄΪi + HT[i].lchild=s1; + HT[i].rchild=s2 ; //s1,s2·Ö±ð×÷ΪiµÄ×óÓÒº¢×Ó + HT[i].weight=HT[s1].weight+HT[s2].weight; //i µÄȨֵΪ×óÓÒº¢×ÓȨֵ֮ºÍ + } //for +} + // CreatHuffmanTree +void CreatHuffmanCode(HuffmanTree HT,HuffmanCode &HC,int n) +{ + //´ÓÒ¶×Óµ½¸ùÄæÏòÇóÿ¸ö×Ö·ûµÄºÕ·òÂü±àÂ룬´æ´¢ÔÚ±àÂë±íHCÖÐ + int i,start,c,f; + HC=new char*[n+1]; //·ÖÅän¸ö×Ö·û±àÂëµÄÍ·Ö¸ÕëʸÁ¿ + char *cd=new char[n]; //·ÖÅäÁÙʱ´æ·Å±àÂëµÄ¶¯Ì¬Êý×é¿Õ¼ä + cd[n-1]='\0'; //±àÂë½áÊø·û + for(i=1;i<=n;++i) + { //Öð¸ö×Ö·ûÇóºÕ·òÂü±àÂë + start=n-1; //start¿ªÊ¼Ê±Ö¸Ïò×îºó£¬¼´±àÂë½áÊø·ûλÖà + c=i; + f=HT[i].parent; //fÖ¸Ïò½áµãcµÄË«Ç×½áµã + while(f!=0) + { //´ÓÒ¶×Ó½áµã¿ªÊ¼ÏòÉÏ»ØËÝ£¬Ö±µ½¸ù½áµã + --start; //»ØËÝÒ»´ÎstartÏòǰָһ¸öλÖà + if(HT[f].lchild==c) + cd[start]='0'; //½áµãcÊÇfµÄ×óº¢×Ó£¬ÔòÉú³É´úÂë0 + else + cd[start]='1'; //½áµãcÊÇfµÄÓÒº¢×Ó£¬ÔòÉú³É´úÂë1 + c=f; + f=HT[f].parent; //¼ÌÐøÏòÉÏ»ØËÝ + } //Çó³öµÚi¸ö×Ö·ûµÄ±àÂë + HC[i]=new char[n-start]; // ΪµÚi ¸ö×Ö·û±àÂë·ÖÅä¿Õ¼ä + strcpy(HC[i], &cd[start]); //½«ÇóµÃµÄ±àÂë´ÓÁÙʱ¿Õ¼äcd¸´ÖƵ½HCµÄµ±Ç°ÐÐÖÐ + } + delete cd; //ÊÍ·ÅÁÙʱ¿Õ¼ä +} // CreatHuffanCode +void show(HuffmanTree HT,HuffmanCode HC) +{ + for(int i=1;i<=sizeof(HC)+1;i++) + cout<>n; //ÊäÈëºÕ·òÂüÊ÷µÄÒ¶×Ó½áµã¸öÊý + CreatHuffmanTree(HT,n); + CreatHuffmanCode(HT,HC,n); + show(HT,HC); +} diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.12-5.13.cpp b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.12-5.13.cpp new file mode 100644 index 0000000..63cdde9 --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.12-5.13.cpp @@ -0,0 +1,201 @@ +#include +#include +#define ERROR -1 +#define MAXSIZE 100 +using namespace std; + +typedef struct BiTNode{ //¶þ²æÊ÷µÄ¶þ²æÁ´±í´æ´¢±íʾ + char data; + struct BiTNode *lchild,*rchild; +}BiTNode,*BiTree; + +typedef struct{ // ×Ö·ûÕ»¶¨Òå + char *base; + char *top; + int stacksize; +}SqStack; + +typedef struct{ //Ê÷Õ»¶¨Òå + BiTree *base; + BiTree *top; + int stacksize; +}BiTreeStack; + + +void InitStack(SqStack &S){ //×Ö·ûÕ»³õʼ»¯ + S.base=new char[MAXSIZE]; + if(!S.base) exit(-1); + S.top=S.base; + S.stacksize=MAXSIZE; +} + + +void InitBiTreeStack(BiTreeStack &S){ //Ê÷Õ»³õʼ»¯ + S.base=new BiTree[MAXSIZE]; + if(!S.base) exit(-1); + S.top=S.base; + S.stacksize=MAXSIZE; +} + + +void Push(SqStack &S,char e) //×Ö·ûÕ»ÈëÕ» +{ + if(S.top-S.base==S.stacksize) return ; + *S.top=e; + S.top++; + +} +void PushBiTree(BiTreeStack &S,BiTree e) //Ê÷Õ»ÈëÕ» +{ + if(S.top-S.base==S.stacksize) return ; + *S.top=e; + S.top++; + +} +void Pop(SqStack &S,char &e) //×Ö·ûÕ»³öÕ» +{ + if(S.top==S.base) return; + e=*--S.top; + +} + +void PopBiTree(BiTreeStack &S,BiTree &e) //Ê÷Õ»³öÕ» +{ + if(S.top==S.base) return; + e=*--S.top; + +} + + +char GetTop(SqStack &S) //×Ö·ûÕ»µÃµ½Õ»¶¥º¯Êý +{ + if(S.top==S.base) exit(1); + return *(S.top-1); +} + +char Precede(char t1,char t2) + { /* ¸ù¾Ý½Ì¿ÆÊé±í3.1£¬ÅжÏÁ½·ûºÅµÄÓÅÏȹØÏµ */ + char f; + switch(t2) + { + case '+':if(t1=='('||t1=='#') + f='<'; + else + f='>'; + break; + case '-':if(t1=='('||t1=='#') + f='<'; + else + f='>'; + break; + case '*':if(t1=='*'||t1=='/'||t1==')') + f='>'; + else + f='<'; + break; + case '/':if(t1=='*'||t1=='/'||t1==')') + f='>'; + else + f='<'; + break; + case '(':if(t1!=')') + f='<'; + break; + case')':if(t1=='(') + f='='; + else + f='>'; + break; + case'#':if(t1=='#') + f='='; + else + f='>'; + } + + return f; + } +int In(char c) + { /* ÅжÏcÊÇ·ñΪÔËËã·û */ + switch(c) + { + case '+': + case'-': + case'*': + case '/': + case'#': + case '(': + case')':return 1;break; + default:return 0; + } + } +int GetValue(char theta,int a,int b) //½øÐÐÔËËãµÄº¯Êý + { + int c; + switch(theta) + { + case '+':c=a+b;break; + case'-':c=a-b;break; + case'*':c=a*b;break; + case'/':c=a/b;break; + default: + break; + } + return c; + } + +void CreateExpTree(BiTree &T,BiTree a,BiTree b,char ch){ //¼òµ¥¶þ²æÊ÷µÄ´´½¨ + T=new BiTNode; + T->data=ch; + T->lchild=a; + T->rchild=b; +} + + + void InitExpTree(BiTree &T) //Ëã·¨5.12 ±í´ïʽÊ÷µÄ´´½¨ + { + SqStack OPTR; + BiTreeStack EXPT; + char ch,theta,x; + BiTree a,b; + InitStack(OPTR);Push(OPTR,'#'); + InitBiTreeStack(EXPT);cin>>ch; + while(ch!='#'||GetTop(OPTR)!='#'){ + if(!In(ch)){CreateExpTree(T,NULL,NULL,ch);PushBiTree(EXPT,T);cin>>ch;}//*q + else + switch(Precede(GetTop(OPTR),ch)){ + case'<': + Push(OPTR,ch);cin>>ch; + break; + case'>': + Pop(OPTR,theta); + PopBiTree(EXPT,b);PopBiTree(EXPT,a); + CreateExpTree(T,a,b,theta); //* + PushBiTree(EXPT,T); + break; + case'=': + Pop(OPTR,x);cin>>ch; + break; + } + } + } + + int EvaluateExTree(BiTree T){ //Ëã·¨5.13 ±í´ïʽÊ÷µÄÇóÖµ + int lvalue,rvalue; + lvalue=rvalue=0; + if(T->lchild==NULL&&T->rchild==NULL) + return T->data-'0'; + else{ + lvalue=EvaluateExTree(T->lchild); + rvalue=EvaluateExTree(T->rchild); + return GetValue(T->data,lvalue,rvalue); //ÔËË㺯Êý + } + } + + void main() + { + cout<<"ÇëÊäÈëËãÊõ±í´ïʽ,²¢ÒÔ#½áÊø,ÖÐ¼ä¼ÆËã¹ý³ÌÒªÊǸöλÊý."< +using namespace std; + +//¶þ²æÊ÷µÄ¶þ²æÁ´±í´æ´¢±íʾ +typedef struct BiNode +{ + char data; //½áµãÊý¾ÝÓò + struct BiNode *lchild,*rchild; //×óÓÒº¢×ÓÖ¸Õë +}BiTNode,*BiTree; + +//Á´Õ»µÄ¶¨Òå +typedef struct StackNode +{ + BiTNode data; + struct StackNode *next; +}StackNode,*LinkStack; + +//ÓÃËã·¨5.3 ÏÈÐò±éÀúµÄ˳Ðò½¨Á¢¶þ²æÁ´±í +void CreateBiTree(BiTree &T) +{ + //°´ÏÈÐò´ÎÐòÊäÈë¶þ²æÊ÷ÖнáµãµÄÖµ£¨Ò»¸ö×Ö·û£©£¬´´½¨¶þ²æÁ´±í±íʾµÄ¶þ²æÊ÷T + char ch; + cin >> ch; + if(ch=='#') T=NULL; //µÝ¹é½áÊø£¬½¨¿ÕÊ÷ + else{ + T=new BiTNode; + T->data=ch; //Éú³É¸ù½áµã + CreateBiTree(T->lchild); //µÝ¹é´´½¨×ó×ÓÊ÷ + CreateBiTree(T->rchild); //µÝ¹é´´½¨ÓÒ×ÓÊ÷ + } //else +} //CreateBiTree + +void InitStack(LinkStack &S) +{ + //¹¹ÔìÒ»¸ö¿ÕÕ»S£¬Õ»¶¥Ö¸ÕëÖÃ¿Õ + S=NULL; +} + +bool StackEmpty(LinkStack S) +{ + if(!S) + return true; + return false; +} + +void Push(LinkStack &S,BiTree e) +{ + //ÔÚÕ»¶¥²åÈëÔªËØ*e + StackNode *p=new StackNode; + p->data=*e; + p->next=S; + S=p; +} + +void Pop(LinkStack &S,BiTree e) +{ + if(S!=NULL)//Ô­ÊéÉÏдµÄÊÇif(S==NULL)return ERROR; + { + *e=S->data; + StackNode *p=S; + S=S->next; + delete p; + } +} + +void InOrderTraverse1(BiTree T) +{ + // ÖÐÐò±éÀú¶þ²æÊ÷TµÄ·ÇµÝ¹éËã·¨ + LinkStack S; BiTree p; + BiTree q=new BiTNode; + InitStack(S); p=T; + while(p||!StackEmpty(S)) + { + if(p) + { + Push(S,p); //p·Ç¿Õ¸ùÖ¸Õë½øÕ»£¬±éÀú×ó×ÓÊ÷ + p=p->lchild; + } + else + { + Pop(S,q); //pΪ¿Õ¸ùÖ¸ÕëÍËÕ»£¬·ÃÎʸù½áµã£¬±éÀúÓÒ×ÓÊ÷ + cout<data; + p=q->rchild; + } + } // while +} // InOrderTraverse + +void main() +{ + BiTree tree; + cout<<"ÇëÊäÈ뽨Á¢¶þ²æÁ´±íµÄÐòÁУº\n"; + CreateBiTree(tree); + cout<<"ÖÐÐò±éÀúµÄ½á¹ûΪ£º\n"; + InOrderTraverse1(tree); + cout< +using namespace std; + +//¶þ²æÊ÷µÄ¶þ²æÁ´±í´æ´¢±íʾ +typedef struct BiNode +{ + char data; //½áµãÊý¾ÝÓò + struct BiNode *lchild,*rchild; //×óÓÒº¢×ÓÖ¸Õë +}BiTNode,*BiTree; + +void CreateBiTree(BiTree &T) +{ + //°´ÏÈÐò´ÎÐòÊäÈë¶þ²æÊ÷ÖнáµãµÄÖµ£¨Ò»¸ö×Ö·û£©£¬´´½¨¶þ²æÁ´±í±íʾµÄ¶þ²æÊ÷T + char ch; + cin >> ch; + if(ch=='#') T=NULL; //µÝ¹é½áÊø£¬½¨¿ÕÊ÷ + else{ + T=new BiTNode; + T->data=ch; //Éú³É¸ù½áµã + CreateBiTree(T->lchild); //µÝ¹é´´½¨×ó×ÓÊ÷ + CreateBiTree(T->rchild); //µÝ¹é´´½¨ÓÒ×ÓÊ÷ + } //else +} //CreateBiTree + +//ÓÃËã·¨5.1 ÖÐÐò±éÀúµÄµÝ¹éËã·¨ +void InOrderTraverse(BiTree T) +{ + //ÖÐÐò±éÀú¶þ²æÊ÷TµÄµÝ¹éËã·¨ + if(T){ + InOrderTraverse(T->lchild); + cout << T->data; + InOrderTraverse(T->rchild); + } +} +void main() +{ + BiTree tree; + cout<<"ÇëÊäÈ뽨Á¢¶þ²æÁ´±íµÄÐòÁУº\n"; + CreateBiTree(tree); + cout<<"Ëù½¨Á¢µÄ¶þ²æÁ´±íÖÐÐòÐòÁУº\n"; + InOrderTraverse(tree); + cout< +using namespace std; + +//¶þ²æÊ÷µÄ¶þ²æÁ´±í´æ´¢±íʾ +typedef struct BiNode +{ + char data; //½áµãÊý¾ÝÓò + struct BiNode *lchild,*rchild; //×óÓÒº¢×ÓÖ¸Õë +}BiTNode,*BiTree; + +//ÓÃËã·¨5.3½¨Á¢¶þ²æÁ´±í +void CreateBiTree(BiTree &T) +{ + //°´ÏÈÐò´ÎÐòÊäÈë¶þ²æÊ÷ÖнáµãµÄÖµ£¨Ò»¸ö×Ö·û£©£¬´´½¨¶þ²æÁ´±í±íʾµÄ¶þ²æÊ÷T + char ch; + cin >> ch; + if(ch=='#') T=NULL; //µÝ¹é½áÊø£¬½¨¿ÕÊ÷ + else{ + T=new BiTNode; + T->data=ch; //Éú³É¸ù½áµã + CreateBiTree(T->lchild); //µÝ¹é´´½¨×ó×ÓÊ÷ + CreateBiTree(T->rchild); //µÝ¹é´´½¨ÓÒ×ÓÊ÷ + } //else +} //CreateBiTree + +void Copy(BiTree T, BiTree &NewT) +{ + if(T==NULL ) + { //Èç¹ûÊÇ¿ÕÊ÷£¬µÝ¹é½áÊø + NewT=NULL; + return; + } + else + { + NewT=new BiTNode; + NewT->data= T->data; //¸´ÖƸù½áµã + Copy(T->lchild, NewT->lchild); //µÝ¹é¸´ÖÆ×ó×ÓÊ÷ + Copy(T->rchild, NewT->rchild); //µÝ¹é¸´ÖÆÓÒ×ÓÊ÷ + } //else +} //CopyBiTree + +//ÓÃËã·¨5.1 ÖÐÐò±éÀúµÄµÝ¹éËã·¨ +void InOrderTraverse(BiTree T) +{ + //ÖÐÐò±éÀú¶þ²æÊ÷TµÄµÝ¹éËã·¨ + if(T){ + InOrderTraverse(T->lchild); + cout << T->data; + InOrderTraverse(T->rchild); + } +} +void main() +{ + BiTree tree,new_tree; + cout<<"ÇëÊäÈ뽨Á¢¶þ²æÊ÷µÄÐòÁУº\n"; + CreateBiTree(tree); + Copy(tree,new_tree); + cout<<"¸´ÖƵõ½µÄÐÂÊ÷µÄÖÐÐòÐòÁУº\n"; + InOrderTraverse(new_tree); + cout< +using namespace std; + +//¶þ²æÊ÷µÄ¶þ²æÁ´±í´æ´¢±íʾ +typedef struct BiNode +{ + char data; //½áµãÊý¾ÝÓò + struct BiNode *lchild,*rchild; //×óÓÒº¢×ÓÖ¸Õë +}BiTNode,*BiTree; + +//ÓÃËã·¨5.3½¨Á¢¶þ²æÁ´±í +void CreateBiTree(BiTree &T) +{ + //°´ÏÈÐò´ÎÐòÊäÈë¶þ²æÊ÷ÖнáµãµÄÖµ£¨Ò»¸ö×Ö·û£©£¬´´½¨¶þ²æÁ´±í±íʾµÄ¶þ²æÊ÷T + char ch; + cin >> ch; + if(ch=='#') T=NULL; //µÝ¹é½áÊø£¬½¨¿ÕÊ÷ + else{ + T=new BiTNode; + T->data=ch; //Éú³É¸ù½áµã + CreateBiTree(T->lchild); //µÝ¹é´´½¨×ó×ÓÊ÷ + CreateBiTree(T->rchild); //µÝ¹é´´½¨ÓÒ×ÓÊ÷ + } //else +} //CreateBiTree + +int Depth(BiTree T) +{ + int m,n; + if(T == NULL ) return 0; //Èç¹ûÊÇ¿ÕÊ÷£¬Éî¶ÈΪ0£¬µÝ¹é½áÊø + else + { + m=Depth(T->lchild); //µÝ¹é¼ÆËã×ó×ÓÊ÷µÄÉî¶È¼ÇΪm + n=Depth(T->rchild); //µÝ¹é¼ÆËãÓÒ×ÓÊ÷µÄÉî¶È¼ÇΪn + if(m>n) return(m+1); //¶þ²æÊ÷µÄÉî¶ÈΪm ÓënµÄ½Ï´óÕß¼Ó1 + else return (n+1); + } +} + +void main() +{ + BiTree tree; + cout<<"ÇëÊäÈ뽨Á¢¶þ²æÁ´±íµÄÐòÁУº\n"; + CreateBiTree(tree); + cout<<"ÊýµÄÉî¶ÈΪ£º"< +using namespace std; + +//¶þ²æÊ÷µÄ¶þ²æÁ´±í´æ´¢±íʾ +typedef struct BiNode +{ + char data; //½áµãÊý¾ÝÓò + struct BiNode *lchild,*rchild; //×óÓÒº¢×ÓÖ¸Õë +}BiTNode,*BiTree; + +//ÓÃËã·¨5.3½¨Á¢¶þ²æÁ´±í +void CreateBiTree(BiTree &T) +{ + //°´ÏÈÐò´ÎÐòÊäÈë¶þ²æÊ÷ÖнáµãµÄÖµ£¨Ò»¸ö×Ö·û£©£¬´´½¨¶þ²æÁ´±í±íʾµÄ¶þ²æÊ÷T + char ch; + cin >> ch; + if(ch=='#') T=NULL; //µÝ¹é½áÊø£¬½¨¿ÕÊ÷ + else{ + T=new BiTNode; + T->data=ch; //Éú³É¸ù½áµã + CreateBiTree(T->lchild); //µÝ¹é´´½¨×ó×ÓÊ÷ + CreateBiTree(T->rchild); //µÝ¹é´´½¨ÓÒ×ÓÊ÷ + } //else +} //CreateBiTree + +int NodeCount(BiTree T) +{ + if(T==NULL) return 0; // Èç¹ûÊÇ¿ÕÊ÷£¬Ôò½áµã¸öÊýΪ0£¬µÝ¹é½áÊø + else return NodeCount(T->lchild)+ NodeCount(T->rchild) +1; + //·ñÔò½áµã¸öÊýΪ×ó×ÓÊ÷µÄ½áµã¸öÊý+ÓÒ×ÓÊ÷µÄ½áµã¸öÊý+1 +} + +void main() +{ + BiTree tree; + cout<<"ÇëÊäÈ뽨Á¢¶þ²æÁ´±íµÄÐòÁУº\n"; + CreateBiTree(tree); + cout<<"½áµã¸öÊýΪ£º"< +using namespace std; + +//¶þ²æÊ÷µÄ¶þ²æÏßË÷ÀàÐÍ´æ´¢±íʾ +typedef struct BiThrNode +{ + char data; //½áµãÊý¾ÝÓò + struct BiThrNode *lchild,*rchild; //×óÓÒº¢×ÓÖ¸Õë + int LTag,RTag; +}BiThrNode,*BiThrTree; + +//È«¾Ö±äÁ¿pre +BiThrNode *pre=new BiThrNode; + +//ÓÃËã·¨5.3½¨Á¢¶þ²æÁ´±í +void CreateBiTree(BiThrTree &T) +{ + //°´ÏÈÐò´ÎÐòÊäÈë¶þ²æÊ÷ÖнáµãµÄÖµ£¨Ò»¸ö×Ö·û£©£¬´´½¨¶þ²æÁ´±í±íʾµÄ¶þ²æÊ÷T + char ch; + cin >> ch; + if(ch=='#') T=NULL; //µÝ¹é½áÊø£¬½¨¿ÕÊ÷ + else + { + T=new BiThrNode; + T->data=ch; //Éú³É¸ù½áµã + CreateBiTree(T->lchild); //µÝ¹é´´½¨×ó×ÓÊ÷ + CreateBiTree(T->rchild); //µÝ¹é´´½¨ÓÒ×ÓÊ÷ + } //else +} //CreateBiTree + +void InThreading(BiThrTree p) +{ + //preÊÇÈ«¾Ö±äÁ¿£¬³õʼ»¯Ê±ÆäÓÒº¢×ÓÖ¸ÕëΪ¿Õ£¬±ãÓÚÔÚÊ÷µÄ×î×óµã¿ªÊ¼½¨ÏßË÷ + if(p) + { + InThreading(p->lchild); //×ó×ÓÊ÷µÝ¹éÏßË÷»¯ + if(!p->lchild) + { //pµÄ×óº¢×ÓΪ¿Õ + p->LTag=1; //¸øp¼ÓÉÏ×óÏßË÷ + p->lchild=pre; //pµÄ×óº¢×ÓÖ¸ÕëÖ¸Ïòpre£¨Ç°Çý£© + } + else + p->LTag=0; + if(!pre->rchild) + { //preµÄÓÒº¢×ÓΪ¿Õ + pre->RTag=1; //¸øpre¼ÓÉÏÓÒÏßË÷ + pre->rchild=p; //preµÄÓÒº¢×ÓÖ¸ÕëÖ¸Ïòp£¨ºó¼Ì£© + } + else + pre->RTag=0; + pre=p; //±£³ÖpreÖ¸ÏòpµÄǰÇý + InThreading(p->rchild); //ÓÒ×ÓÊ÷µÝ¹éÏßË÷»¯ + } +}//InThreading + +void main() +{ + pre->RTag=1; + pre->rchild=NULL; + BiThrTree tree; + cout<<"ÇëÊäÈ뽨Á¢¶þ²æÁ´±íµÄÐòÁУº\n"; + CreateBiTree(tree); + InThreading(tree); + cout<<"ÏßË÷»¯Íê±Ï£¡\n"; +} diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.8.cpp b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.8.cpp new file mode 100644 index 0000000..ceaade5 --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.8.cpp @@ -0,0 +1,85 @@ +//Ëã·¨5.8 ´øÍ·½áµãµÄÖÐÐòÏßË÷»¯ +#include +using namespace std; + +//¶þ²æÊ÷µÄ¶þ²æÏßË÷ÀàÐÍ´æ´¢±íʾ +typedef struct BiThrNode +{ + char data; //½áµãÊý¾ÝÓò + struct BiThrNode *lchild,*rchild; //×óÓÒº¢×ÓÖ¸Õë + int LTag,RTag; +}BiThrNode,*BiThrTree; + +//È«¾Ö±äÁ¿pre +BiThrNode *pre=new BiThrNode; + +//ÓÃËã·¨5.3½¨Á¢¶þ²æÁ´±í +void CreateBiTree(BiThrTree &T) +{ + //°´ÏÈÐò´ÎÐòÊäÈë¶þ²æÊ÷ÖнáµãµÄÖµ£¨Ò»¸ö×Ö·û£©£¬´´½¨¶þ²æÁ´±í±íʾµÄ¶þ²æÊ÷T + char ch; + cin >> ch; + if(ch=='#') T=NULL; //µÝ¹é½áÊø£¬½¨¿ÕÊ÷ + else + { + T=new BiThrNode; + T->data=ch; //Éú³É¸ù½áµã + CreateBiTree(T->lchild); //µÝ¹é´´½¨×ó×ÓÊ÷ + CreateBiTree(T->rchild); //µÝ¹é´´½¨ÓÒ×ÓÊ÷ + } //else +} //CreateBiTree + +//ÓÃËã·¨5.7 ÒÔ½áµãPΪ¸ùµÄ×ÓÊ÷ÖÐÐòÏßË÷»¯ +void InThreading(BiThrTree p) +{ + //preÊÇÈ«¾Ö±äÁ¿£¬³õʼ»¯Ê±ÆäÓÒº¢×ÓÖ¸ÕëΪ¿Õ£¬±ãÓÚÔÚÊ÷µÄ×î×óµã¿ªÊ¼½¨ÏßË÷ + if(p) + { + InThreading(p->lchild); //×ó×ÓÊ÷µÝ¹éÏßË÷»¯ + if(!p->lchild) + { //pµÄ×óº¢×ÓΪ¿Õ + p->LTag=1; //¸øp¼ÓÉÏ×óÏßË÷ + p->lchild=pre; //pµÄ×óº¢×ÓÖ¸ÕëÖ¸Ïòpre£¨Ç°Çý£© + } + else + p->LTag=0; + if(!pre->rchild) + { //preµÄÓÒº¢×ÓΪ¿Õ + pre->RTag=1; //¸øpre¼ÓÉÏÓÒÏßË÷ + pre->rchild=p; //preµÄÓÒº¢×ÓÖ¸ÕëÖ¸Ïòp£¨ºó¼Ì£© + } + else + pre->RTag=0; + pre=p; //±£³ÖpreÖ¸ÏòpµÄǰÇý + InThreading(p->rchild); //ÓÒ×ÓÊ÷µÝ¹éÏßË÷»¯ + } +}//InThreading + +void InOrderThreading (BiThrTree &Thrt,BiThrTree T) +{ + //ÖÐÐò±éÀú¶þ²æÊ÷T£¬²¢½«ÆäÖÐÐòÏßË÷»¯£¬ThrtÖ¸ÏòÍ·½áµã + Thrt=new BiThrNode; //½¨Í·½áµã + Thrt->LTag=0; //Í·½áµãÓÐ×óº¢×Ó£¬ÈôÊ÷·Ç¿Õ£¬ÔòÆä×óº¢×ÓΪÊ÷¸ù + Thrt->RTag=1; //Í·½áµãµÄÓÒº¢×ÓÖ¸ÕëΪÓÒÏßË÷ + Thrt->rchild=Thrt; //³õʼ»¯Ê±ÓÒÖ¸ÕëÖ¸Ïò×Ô¼º + if(!T) Thrt->lchild=Thrt; //ÈôÊ÷Ϊ¿Õ£¬Ôò×óÖ¸ÕëÒ²Ö¸Ïò×Ô¼º + else + { + Thrt->lchild=T; pre=Thrt; //Í·½áµãµÄ×óº¢×ÓÖ¸Ïò¸ù£¬pre³õÖµÖ¸ÏòÍ·½áµã + InThreading(T); //µ÷ÓÃËã·¨5.7£¬¶ÔÒÔTΪ¸ùµÄ¶þ²æÊ÷½øÐÐÖÐÐòÏßË÷»¯ + pre->rchild=Thrt; //Ëã·¨5.7½áÊøºó£¬preΪ×îÓÒ½áµã£¬preµÄÓÒÏßË÷Ö¸ÏòÍ·½áµã + pre->RTag=1; + Thrt->rchild=pre; //Í·½áµãµÄÓÒÏßË÷Ö¸Ïòpre + } +} //InOrderThreading + +void main() +{ + pre->RTag=1; + pre->rchild=NULL; + BiThrTree tree,Thrt; + cout<<"ÇëÊäÈ뽨Á¢¶þ²æÁ´±íµÄÐòÁУº\n"; + CreateBiTree(tree); + InOrderThreading(Thrt,tree); + cout<<"ÏßË÷»¯Íê±Ï!\n"; +} diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.9.cpp b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.9.cpp new file mode 100644 index 0000000..9453d81 --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第5ç« /5.9.cpp @@ -0,0 +1,108 @@ +//Ëã·¨5.9 ±éÀúÖÐÐòÏßË÷¶þ²æÊ÷ +#include +using namespace std; + +//¶þ²æÊ÷µÄ¶þ²æÏßË÷ÀàÐÍ´æ´¢±íʾ +typedef struct BiThrNode +{ + char data; //½áµãÊý¾ÝÓò + struct BiThrNode *lchild,*rchild; //×óÓÒº¢×ÓÖ¸Õë + int LTag,RTag; +}BiThrNode,*BiThrTree; + +//È«¾Ö±äÁ¿pre +BiThrNode *pre=new BiThrNode; + +//ÓÃËã·¨5.3½¨Á¢¶þ²æÁ´±í +void CreateBiTree(BiThrTree &T) +{ + //°´ÏÈÐò´ÎÐòÊäÈë¶þ²æÊ÷ÖнáµãµÄÖµ£¨Ò»¸ö×Ö·û£©£¬´´½¨¶þ²æÁ´±í±íʾµÄ¶þ²æÊ÷T + char ch; + cin >> ch; + if(ch=='#') T=NULL; //µÝ¹é½áÊø£¬½¨¿ÕÊ÷ + else + { + T=new BiThrNode; + T->data=ch; //Éú³É¸ù½áµã + CreateBiTree(T->lchild); //µÝ¹é´´½¨×ó×ÓÊ÷ + CreateBiTree(T->rchild); //µÝ¹é´´½¨ÓÒ×ÓÊ÷ + } //else +} //CreateBiTree + +//ÓÃËã·¨5.7ÒÔ½áµãPΪ¸ùµÄ×ÓÊ÷ÖÐÐòÏßË÷»¯ +void InThreading(BiThrTree p) +{ + //preÊÇÈ«¾Ö±äÁ¿£¬³õʼ»¯Ê±ÆäÓÒº¢×ÓÖ¸ÕëΪ¿Õ£¬±ãÓÚÔÚÊ÷µÄ×î×óµã¿ªÊ¼½¨ÏßË÷ + if(p) + { + InThreading(p->lchild); //×ó×ÓÊ÷µÝ¹éÏßË÷»¯ + if(!p->lchild) + { //pµÄ×óº¢×ÓΪ¿Õ + p->LTag=1; //¸øp¼ÓÉÏ×óÏßË÷ + p->lchild=pre; //pµÄ×óº¢×ÓÖ¸ÕëÖ¸Ïòpre£¨Ç°Çý£© + } + else + p->LTag=0; + if(!pre->rchild) + { //preµÄÓÒº¢×ÓΪ¿Õ + pre->RTag=1; //¸øpre¼ÓÉÏÓÒÏßË÷ + pre->rchild=p; //preµÄÓÒº¢×ÓÖ¸ÕëÖ¸Ïòp£¨ºó¼Ì£© + } + else + pre->RTag=0; + pre=p; //±£³ÖpreÖ¸ÏòpµÄǰÇý + InThreading(p->rchild); //ÓÒ×ÓÊ÷µÝ¹éÏßË÷»¯ + } +}//InThreading + +//ÓÃËã·¨5.8´øÍ·½áµãµÄÖÐÐòÏßË÷»¯ +void InOrderThreading (BiThrTree &Thrt,BiThrTree T) +{ + //ÖÐÐò±éÀú¶þ²æÊ÷T£¬²¢½«ÆäÖÐÐòÏßË÷»¯£¬ThrtÖ¸ÏòÍ·½áµã + Thrt=new BiThrNode; //½¨Í·½áµã + Thrt->LTag=0; //Í·½áµãÓÐ×óº¢×Ó£¬ÈôÊ÷·Ç¿Õ£¬ÔòÆä×óº¢×ÓΪÊ÷¸ù + Thrt->RTag=1; //Í·½áµãµÄÓÒº¢×ÓÖ¸ÕëΪÓÒÏßË÷ + Thrt->rchild=Thrt; //³õʼ»¯Ê±ÓÒÖ¸ÕëÖ¸Ïò×Ô¼º + if(!T) Thrt->lchild=Thrt; //ÈôÊ÷Ϊ¿Õ£¬Ôò×óÖ¸ÕëÒ²Ö¸Ïò×Ô¼º + else + { + Thrt->lchild=T; pre=Thrt; //Í·½áµãµÄ×óº¢×ÓÖ¸Ïò¸ù£¬pre³õÖµÖ¸ÏòÍ·½áµã + InThreading(T); //µ÷ÓÃËã·¨5.7£¬¶ÔÒÔTΪ¸ùµÄ¶þ²æÊ÷½øÐÐÖÐÐòÏßË÷»¯ + pre->rchild=Thrt; //Ëã·¨5.7½áÊøºó£¬preΪ×îÓÒ½áµã£¬preµÄÓÒÏßË÷Ö¸ÏòÍ·½áµã + pre->RTag=1; + Thrt->rchild=pre; //Í·½áµãµÄÓÒÏßË÷Ö¸Ïòpre + } +} //InOrderThreading + +void InOrderTraverse_Thr(BiThrTree T) +{ + //TÖ¸ÏòÍ·½áµã£¬Í·½áµãµÄ×óÁ´lchildÖ¸Ïò¸ù½áµã£¬¿É²Î¼ûÏßË÷»¯Ëã·¨5.8¡£ + //ÖÐÐò±éÀú¶þ²æÏßË÷Ê÷TµÄ·ÇµÝ¹éËã·¨£¬¶Ôÿ¸öÊý¾ÝÔªËØÖ±½ÓÊä³ö + BiThrTree p; + p=T->lchild; //pÖ¸Ïò¸ù½áµã + while(p!=T) //¿ÕÊ÷»ò±éÀú½áÊøÊ±£¬p==T + { + while(p->LTag==0) //ÑØ×óº¢×ÓÏòÏ + p=p->lchild; //·ÃÎÊÆä×ó×ÓÊ÷Ϊ¿ÕµÄ½áµã + cout<data; + while(p->RTag==1&&p->rchild!=T) + { + p=p->rchild; //ÑØÓÒÏßË÷·ÃÎʺó¼Ì½áµã + cout<data; + } + p=p->rchild; + } +} //InOrderTraverse_Thr + +void main() +{ + pre->RTag=1; + pre->rchild=NULL; + BiThrTree tree,Thrt; + cout<<"ÇëÊäÈ뽨Á¢¶þ²æÁ´±íµÄÐòÁУº\n"; + CreateBiTree(tree); + InOrderThreading(Thrt,tree); + cout<<"ÖÐÐò±éÀúÏßË÷¶þ²æÊ÷µÄ½á¹ûΪ£º\n"; + InOrderTraverse_Thr(Thrt); + cout< +using namespace std; + +#define MaxInt 32767 //±íʾ¼«´óÖµ£¬¼´¡Þ +#define MVNum 100 //×î´ó¶¥µãÊý +#define OK 1 + +typedef char VerTexType; //¼ÙÉè¶¥µãµÄÊý¾ÝÀàÐÍΪ×Ö·ûÐÍ +typedef int ArcType; //¼ÙÉè±ßµÄȨֵÀàÐÍΪÕûÐÍ + +//- - - - -ͼµÄÁÚ½Ó¾ØÕó´æ´¢±íʾ- - - - - +typedef struct{ + VerTexType vexs[MVNum]; //¶¥µã±í + ArcType arcs[MVNum][MVNum]; //ÁÚ½Ó¾ØÕó + int vexnum,arcnum; //ͼµÄµ±Ç°µãÊýºÍ±ßÊý +}AMGraph; + +int LocateVex(AMGraph G , VerTexType v){ + //È·¶¨µãvÔÚGÖеÄλÖà + for(int i = 0; i < G.vexnum; ++i) + if(G.vexs[i] == v) + return i; + return -1; +}//LocateVex + +int CreateUDN(AMGraph &G){ + //²ÉÓÃÁÚ½Ó¾ØÕó±íʾ·¨£¬´´½¨ÎÞÏòÍøG + int i , j , k; + cout <<"ÇëÊäÈë×ܶ¥µãÊý£¬×ܱßÊý£¬ÒÔ¿Õ¸ñ¸ô¿ª£º"; + cin >> G.vexnum >> G.arcnum; //ÊäÈë×ܶ¥µãÊý£¬×ܱßÊý + cout << endl; + + cout << "ÊäÈëµãµÄÃû³Æ£¬Èça" << endl; + + for(i = 0; i < G.vexnum; ++i){ + cout << "ÇëÊäÈëµÚ" << (i+1) << "¸öµãµÄÃû³Æ:"; + cin >> G.vexs[i]; //ÒÀ´ÎÊäÈëµãµÄÐÅÏ¢ + } + cout << endl; + for(i = 0; i < G.vexnum; ++i) //³õʼ»¯ÁÚ½Ó¾ØÕ󣬱ߵÄȨֵ¾ùÖÃΪ¼«´óÖµMaxInt + for(j = 0; j < G.vexnum; ++j) + G.arcs[i][j] = MaxInt; + cout << "ÊäÈë±ßÒÀ¸½µÄ¶¥µã¼°È¨Öµ£¬Èç a b 5" << endl; + for(k = 0; k < G.arcnum;++k){ //¹¹ÔìÁÚ½Ó¾ØÕó + VerTexType v1 , v2; + ArcType w; + cout << "ÇëÊäÈëµÚ" << (k + 1) << "Ìõ±ßÒÀ¸½µÄ¶¥µã¼°È¨Öµ:"; + cin >> v1 >> v2 >> w; //ÊäÈëÒ»Ìõ±ßÒÀ¸½µÄ¶¥µã¼°È¨Öµ + i = LocateVex(G, v1); j = LocateVex(G, v2); //È·¶¨v1ºÍv2ÔÚGÖеÄλÖ㬼´¶¥µãÊý×éµÄϱê + G.arcs[i][j] = w; //±ßµÄȨֵÖÃΪw + G.arcs[j][i] = G.arcs[i][j]; //ÖõĶԳƱߵÄȨֵΪw + }//for + return OK; +}//CreateUDN + +int main(){ + cout << "************Ëã·¨6.1¡¡²ÉÓÃÁÚ½Ó¾ØÕó±íʾ·¨´´½¨ÎÞÏòÍø**************" << endl << endl; + AMGraph G; int i , j; + CreateUDN(G); + + cout < +using namespace std; + +#define MaxInt 32767 //±íʾ¼«´óÖµ£¬¼´¡Þ +#define MVNum 100 //×î´ó¶¥µãÊý +typedef char VerTexType; //¼ÙÉè¶¥µãµÄÊý¾ÝÀàÐÍΪ×Ö·ûÐÍ +typedef int ArcType; //¼ÙÉè±ßµÄȨֵÀàÐÍΪÕûÐÍ + +int *D=new int[MVNum]; //ÓÃÓڼǼ×î¶Ì·µÄ³¤¶È +bool *S=new bool[MVNum]; //±ê¼Ç¶¥µãÊÇ·ñ½øÈëS¼¯ºÏ +int *Path=new int[MVNum]; //ÓÃÓڼǼ×î¶Ì·¶¥µãµÄǰÇý + +//------------ͼµÄÁÚ½Ó¾ØÕó----------------- +typedef struct{ + VerTexType vexs[MVNum]; //¶¥µã±í + ArcType arcs[MVNum][MVNum]; //ÁÚ½Ó¾ØÕó + int vexnum,arcnum; //ͼµÄµ±Ç°µãÊýºÍ±ßÊý +}AMGraph; + +int LocateVex(AMGraph G , VerTexType v){ + //È·¶¨µãvÔÚGÖеÄλÖà + for(int i = 0; i < G.vexnum; ++i) + if(G.vexs[i] == v) + return i; + return -1; +}//LocateVex + +void CreateUDN(AMGraph &G){ + //²ÉÓÃÁÚ½Ó¾ØÕó±íʾ·¨£¬´´½¨ÎÞÏòÍøG + int i , j , k; + cout <<"ÇëÊäÈë×ܶ¥µãÊý£¬×ܱßÊý£¬ÒÔ¿Õ¸ñ¸ô¿ª:"; + cin >> G.vexnum >> G.arcnum; //ÊäÈë×ܶ¥µãÊý£¬×ܱßÊý + cout << endl; + + cout << "ÊäÈëµãµÄÃû³Æ:£¬Èça" << endl; + + for(i = 0; i < G.vexnum; ++i){ + cout << "ÇëÊäÈëµÚ" << (i+1) << "¸öµãµÄÃû³Æ:"; + cin >> G.vexs[i]; //ÒÀ´ÎÊäÈëµãµÄÐÅÏ¢ + } + cout << endl; + for(i = 0; i < G.vexnum; ++i) //³õʼ»¯ÁÚ½Ó¾ØÕ󣬱ߵÄȨֵ¾ùÖÃΪ¼«´óÖµMaxInt + for(j = 0; j < G.vexnum; ++j) + G.arcs[i][j] = MaxInt; + cout << "ÊäÈë±ßÒÀ¸½µÄ¶¥µã¼°È¨Öµ£¬Èça b 7" << endl; + for(k = 0; k < G.arcnum;++k){ //¹¹ÔìÁÚ½Ó¾ØÕó + VerTexType v1 , v2; + ArcType w; + cout << "ÇëÊäÈëµÚ" << (k + 1) << "Ìõ±ßÒÀ¸½µÄ¶¥µã¼°È¨Öµ:"; + cin >> v1 >> v2 >> w; //ÊäÈëÒ»Ìõ±ßÒÀ¸½µÄ¶¥µã¼°È¨Öµ + i = LocateVex(G, v1); j = LocateVex(G, v2); //È·¶¨v1ºÍv2ÔÚGÖеÄλÖ㬼´¶¥µãÊý×éµÄϱê + G.arcs[i][j] = w; //±ßµÄȨֵÖÃΪw + G.arcs[j][i] = G.arcs[i][j]; //ÖõĶԳƱߵÄȨֵΪw + }//for +}//CreateUDN + +void ShortestPath_DIJ(AMGraph G, int v0){ + //ÓÃDijkstraËã·¨ÇóÓÐÏòÍøGµÄv0¶¥µãµ½ÆäÓà¶¥µãµÄ×î¶Ì·¾¶ + int v , i , w , min; + int n = G.vexnum; //nΪGÖж¥µãµÄ¸öÊý + + for(v = 0; v < n; ++v){ //n¸ö¶¥µãÒÀ´Î³õʼ»¯ + S[v] = false; //S³õʼΪ¿Õ¼¯ + D[v] = G.arcs[v0][v]; //½«v0µ½¸÷¸öÖÕµãµÄ×î¶Ì·¾¶³¤¶È³õʼ»¯Îª»¡ÉϵÄȨֵ + if(D[v] < MaxInt) Path [v] = v0; //Èç¹ûv0ºÍvÖ®¼äÓл¡£¬Ôò½«vµÄǰÇýÖÃΪv0 + else Path [v] = -1; //Èç¹ûv0ºÍvÖ®¼äÎÞ»¡£¬Ôò½«vµÄǰÇýÖÃΪ-1 + }//for + + S[v0]=true; //½«v0¼ÓÈëS + D[v0]=0; //Ô´µãµ½Ô´µãµÄ¾àÀëΪ0 + + /*¨D³õʼ»¯½áÊø£¬¿ªÊ¼Ö÷Ñ­»·£¬Ã¿´ÎÇóµÃv0µ½Ä³¸ö¶¥µãvµÄ×î¶Ì·¾¶£¬½«v¼Óµ½S¼¯¨D*/ + for(i = 1;i < n; ++i){ //¶ÔÆäÓàn-1¸ö¶¥µã£¬ÒÀ´Î½øÐмÆËã + min= MaxInt; + for(w = 0; w < n; ++w) + if(!S[w] && D[w] < min){ //Ñ¡ÔñÒ»Ìõµ±Ç°µÄ×î¶Ì·¾¶£¬ÖÕµãΪv + v = w; + min = D[w]; + }//if + S[v]=true; //½«v¼ÓÈëS + for(w = 0;w < n; ++w) //¸üдÓv0³ö·¢µ½¼¯ºÏV?SÉÏËùÓж¥µãµÄ×î¶Ì·¾¶³¤¶È + if(!S[w] && (D[v] + G.arcs[v][w] < D[w])){ + D[w] = D[v] + G.arcs[v][w]; //¸üÐÂD[w] + Path [w] = v; //¸ü¸ÄwµÄǰÇýΪv + }//if + }//for +}//ShortestPath_DIJ + +void DisplayPath(AMGraph G , int begin ,int temp ){ + //ÏÔʾ×î¶Ì· + if(Path[temp] != -1){ + DisplayPath(G , begin ,Path[temp]); + cout << G.vexs[Path[temp]] << "-->"; + } +}//DisplayPath + +void main() +{ + cout << "************Ëã·¨6.10¡¡µÏ½ÜË¹ÌØÀ­Ëã·¨**************" << endl << endl; + AMGraph G; + int i , j ,num_start , num_destination; + VerTexType start , destination; + CreateUDN(G); + cout <> start >> destination; + num_start = LocateVex(G , start); + num_destination = LocateVex(G , destination); + ShortestPath_DIJ(G , num_start); + cout << endl <<"×î¶Ì·¾¶Îª£º"; + DisplayPath(G , num_start , num_destination); + cout << G.vexs[num_destination]< +using namespace std; + +#define MaxInt 32767 //±íʾ¼«´óÖµ£¬¼´¡Þ +#define MVNum 100 //×î´ó¶¥µãÊý + +typedef char VerTexType; //¼ÙÉè¶¥µãµÄÊý¾ÝÀàÐÍΪ×Ö·ûÐÍ +typedef int ArcType; //¼ÙÉè±ßµÄȨֵÀàÐÍΪÕûÐÍ + +int Path[MVNum][MVNum]; //×î¶Ì·¾¶É϶¥µãvjµÄǰһ¶¥µãµÄÐòºÅ +int D[MVNum][MVNum]; //¼Ç¼¶¥µãviºÍvjÖ®¼äµÄ×î¶Ì·¾¶³¤¶È + +//------------ͼµÄÁÚ½Ó¾ØÕó--------------- +typedef struct{ + VerTexType vexs[MVNum]; //¶¥µã±í + ArcType arcs[MVNum][MVNum]; //ÁÚ½Ó¾ØÕó + int vexnum,arcnum; //ͼµÄµ±Ç°µãÊýºÍ±ßÊý +}AMGraph; + +int LocateVex(AMGraph G , VerTexType v){ + //È·¶¨µãvÔÚGÖеÄλÖà + for(int i = 0; i < G.vexnum; ++i) + if(G.vexs[i] == v) + return i; + return -1; +}//LocateVex + +void CreateUDN(AMGraph &G){ + //²ÉÓÃÁÚ½Ó¾ØÕó±íʾ·¨£¬´´½¨ÓÐÏòÍøG + int i , j , k; + cout <<"ÇëÊäÈë×ܶ¥µãÊý£¬×ܱßÊý£¬ÒÔ¿Õ¸ñ¸ô¿ª:"; + cin >> G.vexnum >> G.arcnum; //ÊäÈë×ܶ¥µãÊý£¬×ܱßÊý + cout << endl; + + cout << "ÊäÈëµãµÄÃû³Æ£¬Èça" << endl; + + for(i = 0; i < G.vexnum; ++i){ + cout << "ÇëÊäÈëµÚ" << (i+1) << "¸öµãµÄÃû³Æ:"; + cin >> G.vexs[i]; //ÒÀ´ÎÊäÈëµãµÄÐÅÏ¢ + } + cout << endl; + for(i = 0; i < G.vexnum; ++i){ //³õʼ»¯ÁÚ½Ó¾ØÕ󣬱ߵÄȨֵ¾ùÖÃΪ¼«´óÖµMaxInt + for(j = 0; j < G.vexnum; ++j){ + if(j != i) + G.arcs[i][j] = MaxInt; + else + G.arcs[i][j] = 0; + }//for + }//for + + cout << "ÊäÈë±ßÒÀ¸½µÄ¶¥µã¼°È¨Öµ£¬Èça b 3" << endl; + for(k = 0; k < G.arcnum;++k){ //¹¹ÔìÁÚ½Ó¾ØÕó + VerTexType v1 , v2; + ArcType w; + cout << "ÇëÊäÈëµÚ" << (k + 1) << "Ìõ±ßÒÀ¸½µÄ¶¥µã¼°È¨Öµ:"; + cin >> v1 >> v2 >> w; //ÊäÈëÒ»Ìõ±ßÒÀ¸½µÄ¶¥µã¼°È¨Öµ + i = LocateVex(G, v1); j = LocateVex(G, v2); //È·¶¨v1ºÍv2ÔÚGÖеÄλÖ㬼´¶¥µãÊý×éµÄϱê + G.arcs[i][j] = w; //±ßµÄȨֵÖÃΪw + }//for +}//CreateUDN + +void ShortestPath_Floyed(AMGraph G){ + //ÓÃFloydËã·¨ÇóÓÐÏòÍøGÖи÷¶Ô¶¥µãiºÍjÖ®¼äµÄ×î¶Ì·¾¶ + int i , j , k ; + for (i = 0; i < G.vexnum; ++i) //¸÷¶Ô½áµãÖ®¼ä³õʼÒÑ֪·¾¶¼°¾àÀë + for(j = 0; j < G.vexnum; ++j){ + D[i][j] = G.arcs[i][j]; + if(D[i][j] < MaxInt && i != j) Path[i][j]=i; //Èç¹ûiºÍjÖ®¼äÓл¡£¬Ôò½«jµÄǰÇýÖÃΪi + else Path [i][j] = -1; //Èç¹ûiºÍjÖ®¼äÎÞ»¡£¬Ôò½«jµÄǰÇýÖÃΪ-1 + }//for + for(k = 0; k < G.vexnum; ++k) + for(i = 0; i < G.vexnum; ++i) + for(j = 0; j < G.vexnum; ++j) + if(D[i][k] + D[k][j] < D[i][j]){ //´Ói¾­kµ½jµÄÒ»Ìõ·¾¶¸ü¶Ì + D[i][j] = D[i][k]+D[k][j]; //¸üÐÂD[i][j] + Path[i][j] = Path[k][j]; //¸ü¸ÄjµÄǰÇýΪk + }//if +}//ShortestPath_Floyed + +void DisplayPath(AMGraph G , int begin ,int temp ){ + //ÏÔʾ×î¶Ì·¾¶ + if(Path[begin][temp] != -1){ + DisplayPath(G , begin ,Path[begin][temp]); + cout << G.vexs[Path[begin][temp]] << "-->"; + } +}//DisplayPath + +void main(){ + cout << "************Ëã·¨6.11¡¡¸¥ÂåÒÁµÂËã·¨**************" << endl << endl; + AMGraph G; + char start , destination; + int num_start , num_destination; + + CreateUDN(G); + + cout <> start >> destination; + num_start = LocateVex(G , start); + num_destination = LocateVex(G , destination); + + DisplayPath(G , num_start , num_destination); + cout << G.vexs[num_destination] << endl; + cout << "×î¶Ì·¾¶µÄ³¤¶ÈΪ£º" << D[num_start][num_destination] << endl; + cout < +using namespace std; + +#define MVNum 100 //×î´ó¶¥µãÊý +#define OK 1 +#define ERROR 0 + +typedef char VerTexType; + +//- - - - -ͼµÄÁÚ½Ó±í´æ´¢±íʾ- - - - - +typedef struct ArcNode{ //±ß½áµã + int adjvex; //¸Ã±ßËùÖ¸ÏòµÄ¶¥µãµÄλÖà + struct ArcNode *nextarc; //Ö¸ÏòÏÂÒ»Ìõ±ßµÄÖ¸Õë +}ArcNode; + +typedef struct VNode{ + VerTexType data; //¶¥µãÐÅÏ¢ + ArcNode *firstarc; //Ö¸ÏòµÚÒ»ÌõÒÀ¸½¸Ã¶¥µãµÄ±ßµÄÖ¸Õë +}VNode, AdjList[MVNum]; //AdjList±íʾÁÚ½Ó±íÀàÐÍ + +typedef struct{ + AdjList vertices; //ÁÚ½Ó±í + AdjList converse_vertices; //ÄæÁÚ½Ó±í + int vexnum, arcnum; //ͼµÄµ±Ç°¶¥µãÊýºÍ±ßÊý +}ALGraph; +//- - - - - - - - - - - - - - - - + +//- - - - -˳ÐòÕ»µÄ¶¨Òå- - - - - +typedef struct{ + int *base; + int *top; + int stacksize; +}spStack; +//- - - - - - - - - - - - - - - - + +int indegree[MVNum]; //Êý×éindegree´æ·Å¸ö¶¥µãµÄÈë¶È +spStack S; + +//------------Õ»µÄÏà¹Ø²Ù×÷---------------------- +void InitStack(spStack &S){ + //³õʼ»¯Õ» + S.base = new int[MVNum]; + if(!S.base) + exit(1); + S.top = S.base; + S.stacksize = MVNum; +}//InitStack + +void Push(spStack &S , int i){ + //½øÕ» + if(S.top - S.base == S.stacksize) + return; + *S.top++ = i; +}//Push + +void Pop(spStack &S , int &i){ + //³öÕ» + if(S.top == S.base) + return; + i = *--S.top; +}//Pop + +bool StackEmpty(spStack S){ + //ÅжÏÕ»ÊÇ·ñΪ¿Õ + if(S.top == S.base) + return true; + return false; +}//StackEmpty +//------------------------------------------------- + +int LocateVex(ALGraph G , VerTexType v){ + //È·¶¨µãvÔÚGÖеÄλÖà + for(int i = 0; i < G.vexnum; ++i) + if(G.vertices[i].data == v) + return i; + return -1; +}//LocateVex + +int CreateUDG(ALGraph &G){ + //´´½¨ÓÐÏòͼGµÄÁÚ½Ó±í¡¢ÄæÁÚ½Ó±í + int i , k; + + cout <<"ÇëÊäÈë×ܶ¥µãÊý£¬×ܱßÊý£¬ÒÔ¿Õ¸ñ¸ô¿ª:"; + cin >> G.vexnum >> G.arcnum; //ÊäÈë×ܶ¥µãÊý£¬×ܱßÊý + cout << endl; + + cout << "ÊäÈëµãµÄÃû³Æ£¬Èça" << endl; + + for(i = 0; i < G.vexnum; ++i){ //ÊäÈë¸÷µã£¬¹¹Ôì±íÍ·½áµã±í + cout << "ÇëÊäÈëµÚ" << (i+1) << "¸öµãµÄÃû³Æ:"; + cin >> G.vertices[i].data; //ÊäÈë¶¥µãÖµ + G.converse_vertices[i].data = G.vertices[i].data; + //³õʼ»¯±íÍ·½áµãµÄÖ¸ÕëÓòΪNULL + G.vertices[i].firstarc=NULL; + G.converse_vertices[i].firstarc=NULL; + }//for + cout << endl; + cout << "ÊäÈë±ßÒÀ¸½µÄ¶¥µã£¬Èça b" << endl; + for(k = 0; k < G.arcnum;++k){ //ÊäÈë¸÷±ß£¬¹¹ÔìÁÚ½Ó±í + VerTexType v1 , v2; + int i , j; + cout << "ÇëÊäÈëµÚ" << (k + 1) << "Ìõ±ßÒÀ¸½µÄ¶¥µã:"; + cin >> v1 >> v2; //ÊäÈëÒ»Ìõ±ßÒÀ¸½µÄÁ½¸ö¶¥µã + i = LocateVex(G, v1); j = LocateVex(G, v2); + //È·¶¨v1ºÍv2ÔÚGÖÐλÖ㬼´¶¥µãÔÚG.verticesÖеÄÐòºÅ + + ArcNode *p1=new ArcNode; //Éú³ÉÒ»¸öеı߽áµã*p1 + p1->adjvex=j; //ÁÚ½ÓµãÐòºÅΪj + p1->nextarc = G.vertices[i].firstarc; G.vertices[i].firstarc=p1; + //½«Ð½áµã*p1²åÈë¶¥µãviµÄ±ß±íÍ·²¿ + + ArcNode *p2=new ArcNode; //Éú³ÉÒ»¸öеı߽áµã*p1 + p2->adjvex=i; //ÄæÁÚ½ÓµãÐòºÅΪi + p2->nextarc = G.converse_vertices[j].firstarc; G.converse_vertices[j].firstarc=p2; + //½«Ð½áµã*p1²åÈë¶¥µãviµÄ±ß±íÍ·²¿ + }//for + return OK; +}//CreateUDG + +void FindInDegree(ALGraph G){ + //Çó³ö¸÷¶¥µãµÄÈë¶È´æÈëÊý×éindegreeÖÐ + int i , count; + + for(i = 0 ; i < G.vexnum ; i++){ + count = 0; + ArcNode *p = G.converse_vertices[i].firstarc; + if(p){ + while(p){ + p = p->nextarc; + count++; + } + } + indegree[i] = count; + } +}//FindInDegree + +int TopologicalSort(ALGraph G , int topo[]){ + //ÓÐÏòͼG²ÉÓÃÁÚ½Ó±í´æ´¢½á¹¹ + //ÈôGÎÞ»ØÂ·£¬ÔòÉú³ÉGµÄÒ»¸öÍØÆËÐòÁÐtopo[]²¢·µ»ØOK£¬·ñÔòERROR + int i , m; + FindInDegree(G); //Çó³ö¸÷¶¥µãµÄÈë¶È´æÈëÊý×éindegreeÖÐ + InitStack(S); //Õ»S³õʼ»¯Îª¿Õ + for(i = 0; i < G.vexnum; ++i) + if(!indegree[i]) Push(S, i); //Èë¶ÈΪ0Õß½øÕ» + m = 0; //¶ÔÊä³ö¶¥µã¼ÆÊý£¬³õʼΪ0 + while(!StackEmpty(S)){ //Õ»S·Ç¿Õ + Pop(S, i); //½«Õ»¶¥¶¥µãvi³öÕ» + topo[m]=i; //½«vi±£´æÔÚÍØÆËÐòÁÐÊý×étopoÖÐ + ++m; //¶ÔÊä³ö¶¥µã¼ÆÊý + ArcNode *p = G.vertices[i].firstarc; //pÖ¸ÏòviµÄµÚÒ»¸öÁÚ½Óµã + while(p){ + int k = p->adjvex; //vkΪviµÄÁÚ½Óµã + --indegree[k]; //viµÄÿ¸öÁÚ½ÓµãµÄÈë¶È¼õ1 + if(indegree[k] ==0) Push(S, k); //ÈôÈë¶È¼õΪ0£¬ÔòÈëÕ» + p = p->nextarc; //pÖ¸Ïò¶¥µãviÏÂÒ»¸öÁÚ½Ó½áµã + }//while + }//while + + if(m < G.vexnum) return ERROR; //¸ÃÓÐÏòͼÓлØÂ· + else return OK; +}//TopologicalSort + +int main(){ + cout << "************Ëã·¨6.12¡¡ÍØÆËÅÅÐò**************" << endl << endl; + ALGraph G; + CreateUDG(G); + int *topo = new int [G.vexnum]; + + cout << endl; + cout << "ÓÐÏòͼµÄÁÚ½Ó±í¡¢ÄæÁÚ½Ó±í´´½¨Íê³É!" << endl << endl; + + if(TopologicalSort(G , topo)){ + cout << "¸ÃÓÐÏòͼµÄÍØÆËÓÐÐòÐòÁÐΪ£º"; + for(int j = 0 ; j < G.vexnum; j++){ + if(j != G.vexnum - 1) + cout << G.vertices[topo[j]].data << " , "; + else + cout << G.vertices[topo[j]].data << endl << endl; + }//for + } + else + cout << "ÍøÖдæÔÚ»·£¬ÎÞ·¨½øÐÐÍØÆËÅÅÐò£¡" < +using namespace std; + +#define MVNum 100 //×î´ó¶¥µãÊý +#define BDNum MVNum * (MVNum - 1) //×î´ó±ßÊý +#define OK 1 +#define ERROR 0 + +typedef char VerTexType; + +//- - - - -ͼµÄÁÚ½Ó±í´æ´¢±íʾ- - - - - +typedef struct ArcNode{ //±ß½áµã + int adjvex; //¸Ã±ßËùÖ¸ÏòµÄ¶¥µãµÄλÖà + int weight; //Ȩֵ + struct ArcNode *nextarc; //Ö¸ÏòÏÂÒ»Ìõ±ßµÄÖ¸Õë +}ArcNode; + +typedef struct VNode{ + VerTexType data; //¶¥µãÐÅÏ¢ + ArcNode *firstarc; //Ö¸ÏòµÚÒ»ÌõÒÀ¸½¸Ã¶¥µãµÄ±ßµÄÖ¸Õë +}VNode, AdjList[MVNum]; //AdjList±íʾÁÚ½Ó±íÀàÐÍ + +typedef struct{ + AdjList vertices; //ÁÚ½Ó±í + AdjList converse_vertices; //ÄæÁÚ½Ó±í + int vexnum, arcnum; //ͼµÄµ±Ç°¶¥µãÊýºÍ±ßÊý +}ALGraph; +//- - - - - - - - - - - - - - - - + +//- - - - -˳ÐòÕ»µÄ¶¨Òå- - - - - +typedef struct{ + int *base; + int *top; + int stacksize; +}spStack; +//- - - - - - - - - - - - - - - - + +int indegree[MVNum]; //Êý×éindegree´æ·Å¸ö¶¥µãµÄÈë¶È +int ve[BDNum]; //ʼþviµÄ×îÔç·¢Éúʱ¼ä +int vl[BDNum]; //ʼþviµÄ×î³Ù·¢Éúʱ¼ä +int topo[MVNum]; //¼ÇÂ¼ÍØÆËÐòÁеĶ¥µãÐòºÅ +spStack S; + +//----------------Õ»µÄ²Ù×÷-------------------- +void InitStack(spStack &S){ + //Õ»µÄ³õʼ»¯ + S.base = new int[MVNum]; + if(!S.base) + exit(1); + S.top = S.base; + S.stacksize = MVNum; +}//InitStack + +void Push(spStack &S , int i){ + //ÈëÕ» + if(S.top - S.base == S.stacksize) + return; + *S.top++ = i; +}//Push + +void Pop(spStack &S , int &i){ + //³öÕ» + if(S.top == S.base) + return; + i = *--S.top; +}//Pop + +bool StackEmpty(spStack S){ + //ÅжÏÕ»ÊÇ·ñΪ¿Õ + if(S.top == S.base) + return true; + return false; +}//StackEmpty +//--------------------------------------- + +int LocateVex(ALGraph G , VerTexType v){ + //È·¶¨µãvÔÚGÖеÄλÖà + for(int i = 0; i < G.vexnum; ++i) + if(G.vertices[i].data == v) + return i; + return -1; +}//LocateVex + +int CreateUDG(ALGraph &G){ + //´´½¨ÓÐÏòͼGµÄÁÚ½Ó±í¡¢ÄæÁÚ½Ó±í + int i , k; + + cout <<"ÇëÊäÈë×ܶ¥µãÊý£¬×ܱßÊý£¬ÒÔ¿Õ¸ñ¸ô¿ª:"; + cin >> G.vexnum >> G.arcnum; //ÊäÈë×ܶ¥µãÊý£¬×ܱßÊý + cout << endl; + + cout << "ÊäÈëµãµÄÃû³Æ£¬Èça" << endl; + + for(i = 0; i < G.vexnum; ++i){ //ÊäÈë¸÷µã£¬¹¹Ôì±íÍ·½áµã±í + cout << "ÇëÊäÈëµÚ" << (i+1) << "¸öµãµÄÃû³Æ:"; + cin >> G.vertices[i].data; //ÊäÈë¶¥µãÖµ + G.converse_vertices[i].data = G.vertices[i].data; + //³õʼ»¯±íÍ·½áµãµÄÖ¸ÕëÓòΪNULL + G.vertices[i].firstarc=NULL; + G.converse_vertices[i].firstarc=NULL; + }//for + cout << endl; + + cout << "ÊäÈë±ßÒÀ¸½µÄ¶¥µã¼°ÆäȨֵ£¬Èça b 3" << endl; + + for(k = 0; k < G.arcnum;++k){ //ÊäÈë¸÷±ß£¬¹¹ÔìÁÚ½Ó±í + VerTexType v1 , v2; + int i , j , w; + cout << "ÇëÊäÈëµÚ" << (k + 1) << "Ìõ±ßÒÀ¸½µÄ¶¥µã¼°ÆäȨֵ:"; + cin >> v1 >> v2 >> w; //ÊäÈëÒ»Ìõ±ßÒÀ¸½µÄÁ½¸ö¶¥µã + i = LocateVex(G, v1); j = LocateVex(G, v2); + //È·¶¨v1ºÍv2ÔÚGÖÐλÖ㬼´¶¥µãÔÚG.verticesÖеÄÐòºÅ + + ArcNode *p1=new ArcNode; //Éú³ÉÒ»¸öеı߽áµã*p1 + p1->adjvex=j; //ÁÚ½ÓµãÐòºÅΪj + p1->nextarc = G.vertices[i].firstarc; G.vertices[i].firstarc=p1; + p1->weight = w; + //½«Ð½áµã*p1²åÈë¶¥µãviµÄ±ß±íÍ·²¿ + + ArcNode *p2=new ArcNode; //Éú³ÉÒ»¸öеı߽áµã*p1 + p2->adjvex=i; //ÄæÁÚ½ÓµãÐòºÅΪi + p2->nextarc = G.converse_vertices[j].firstarc; G.converse_vertices[j].firstarc=p2; + p2->weight = w; + //½«Ð½áµã*p1²åÈë¶¥µãviµÄ±ß±íÍ·²¿ + }//for + return OK; +}//CreateUDG + +void FindInDegree(ALGraph G){ + //Çó³ö¸÷¶¥µãµÄÈë¶È´æÈëÊý×éindegreeÖÐ + int i , count; + + for(i = 0 ; i < G.vexnum ; i++){ + count = 0; + ArcNode *p = G.converse_vertices[i].firstarc; + if(p){ + while(p){ + p = p->nextarc; + count++; + } + }//if + indegree[i] = count; + }//for +}//FindInDegree + +int TopologicalOrder(ALGraph G , int topo[]){ + //ÓÐÏòͼG²ÉÓÃÁÚ½Ó±í´æ´¢½á¹¹ + //ÈôGÎÞ»ØÂ·£¬ÔòÉú³ÉGµÄÒ»¸öÍØÆËÐòÁÐtopo[]²¢·µ»ØOK£¬·ñÔòERROR + int i , m; + FindInDegree(G); //Çó³ö¸÷¶¥µãµÄÈë¶È´æÈëÊý×éindegreeÖÐ + InitStack(S); //Õ»S³õʼ»¯Îª¿Õ + for(i = 0; i < G.vexnum; ++i) + if(!indegree[i]) Push(S, i); //Èë¶ÈΪ0Õß½øÕ» + m = 0; //¶ÔÊä³ö¶¥µã¼ÆÊý£¬³õʼΪ0 + while(!StackEmpty(S)){ //Õ»S·Ç¿Õ + Pop(S, i); //½«Õ»¶¥¶¥µãvi³öÕ» + topo[m]=i; //½«vi±£´æÔÚÍØÆËÐòÁÐÊý×étopoÖÐ + ++m; //¶ÔÊä³ö¶¥µã¼ÆÊý + ArcNode *p = G.vertices[i].firstarc; //pÖ¸ÏòviµÄµÚÒ»¸öÁÚ½Óµã + while(p){ + int k = p->adjvex; //vkΪviµÄÁÚ½Óµã + --indegree[k]; //viµÄÿ¸öÁÚ½ÓµãµÄÈë¶È¼õ1 + if(indegree[k] ==0) Push(S, k); //ÈôÈë¶È¼õΪ0£¬ÔòÈëÕ» + p = p->nextarc; //pÖ¸Ïò¶¥µãviÏÂÒ»¸öÁÚ½Ó½áµã + }//while + }//while + + if(m < G.vexnum) return ERROR; //¸ÃÓÐÏòͼÓлØÂ· + else return OK; +}//TopologicalOrder + +int CriticalPath(ALGraph G){ + //GΪÁÚ½Ó±í´æ´¢µÄÓÐÏòÍø£¬Êä³öGµÄ¸÷Ïî¹Ø¼ü»î¶¯ + int n , i , k , j , e , l; + if (!TopologicalOrder(G, topo)) return ERROR; + //µ÷ÓÃÍØÆËÅÅÐòËã·¨£¬Ê¹ÍØÆËÐòÁб£´æÔÚtopoÖУ¬Èôµ÷ÓÃʧ°Ü£¬Ôò´æÔÚÓÐÏò»·£¬·µ»ØERROR + n = G.vexnum; //nΪ¶¥µã¸öÊý + for(i = 0; i < n; i++) //¸øÃ¿¸öʼþµÄ×îÔç·¢Éúʱ¼äÖóõÖµ0 + ve[i] = 0; + + + /*¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D°´ÍØÆË´ÎÐòÇóÿ¸öʼþµÄ×îÔç·¢Éúʱ¼ä£­¨D¨D¨D¨D£­¨D¨D¨D¨D¨D*/ + for(i = 0;i < n; i++){ + k = topo[i]; //È¡µÃÍØÆËÐòÁÐÖеĶ¥µãÐòºÅk + ArcNode *p = G.vertices[k].firstarc; //pÖ¸ÏòkµÄµÚÒ»¸öÁÚ½Ó¶¥µã + while(p != NULL){ //ÒÀ´Î¸üÐÂkµÄËùÓÐÁÚ½Ó¶¥µãµÄ×îÔç·¢Éúʱ¼ä + j = p->adjvex; //jΪÁÚ½Ó¶¥µãµÄÐòºÅ + if(ve[j] < ve[k] + p->weight) //¸üж¥µãjµÄ×îÔç·¢Éúʱ¼äve[j] + ve[j] = ve[k] + p->weight; + p = p->nextarc; //pÖ¸ÏòkµÄÏÂÒ»¸öÁÚ½Ó¶¥µã + } //while + } //for + + for(i=0;i= 0; i--){ + k = topo[i]; //È¡µÃÍØÆËÐòÁÐÖеĶ¥µãÐòºÅk + ArcNode *p = G.vertices[k].firstarc; //pÖ¸ÏòkµÄµÚÒ»¸öÁÚ½Ó¶¥µã + while(p != NULL){ //¸ù¾ÝkµÄÁڽӵ㣬¸üÐÂkµÄ×î³Ù·¢Éúʱ¼ä + j = p->adjvex; //jΪÁÚ½Ó¶¥µãµÄÐòºÅ + if(vl[k] > vl[j] - p->weight) //¸üж¥µãkµÄ×î³Ù·¢Éúʱ¼ävl[k] + vl[k] = vl[j] - p->weight; + p = p->nextarc; //pÖ¸ÏòkµÄÏÂÒ»¸öÁÚ½Ó¶¥µã + }//while + }//for + + /*¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨DÅжÏÿһ»î¶¯ÊÇ·ñΪ¹Ø¼ü»î¶¯£­¨D¨D¨D¨D¨D¨D£­¨D¨D¨D¨D¨D*/ + cout << endl; + cout << "¹Ø¼ü»î¶¯Â·¾¶Îª:"; + for(i = 0;i < n; i++){ //ÿ´ÎÑ­»·Õë¶ÔviΪ»î¶¯¿ªÊ¼µãµÄËùÓл + ArcNode *p = G.vertices[i].firstarc; //pÖ¸ÏòiµÄµÚÒ»¸öÁÚ½Ó¶¥µã + while(p != NULL) { + j = p->adjvex; //jΪiµÄÁÚ½Ó¶¥µãµÄÐòºÅ + e = ve[i]; //¼ÆËã»î¶¯µÄ×îÔ翪ʼʱ¼ä + l = vl[j] - p->weight; //¼ÆËã»î¶¯µÄ×î³Ù¿ªÊ¼Ê±¼ä + if(e == l) //ÈôΪ¹Ø¼ü»î¶¯£¬ÔòÊä³ö + cout << G.vertices[i].data << "-->" << G.vertices[j].data << " "; + p = p->nextarc; //pÖ¸ÏòiµÄÏÂÒ»¸öÁÚ½Ó¶¥µã + } //while + } //for + return OK; +}//CriticalPath + +int main(){ + cout << "************Ëã·¨6.13¡¡¹Ø¼ü·¾¶Ëã·¨**************" << endl << endl; + ALGraph G; + CreateUDG(G); + int *topo = new int [G.vexnum]; + + cout << endl; + cout << "ÓÐÏòͼ´´½¨Íê³É!" << endl << endl; + + if(!CriticalPath(G)) + cout << "ÍøÖдæÔÚ»·£¬ÎÞ·¨½øÐÐÍØÆËÅÅÐò£¡" < +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +//#define ONLINE_JUDGE +#define eps 1e-8 +#define INF 0x7fffffff +#define FOR(i,a) for((i)=0;i<(a);(i)++) +#define MEM(a) (memset((a),0,sizeof(a))) +#define sfs(a) scanf("%s",a) +#define sf(a) scanf("%d",&a) +#define sfI(a) scanf("%I64d",&a) +#define pf(a) printf("%d\n",a) +#define pfI(a) printf("%I64d\n",a) +#define pfs(a) printf("%s\n",a) +#define sfd(a,b) scanf("%d%d",&a,&b) +#define sft(a,b,c)scanf("%d%d%d",&a,&b,&c) +#define for1(i,a,b) for(int i=(a);i=a;i--) +#define MEM1(a) memset(a,0,sizeof(a)) +#define MEM2(a) memset(a,-1,sizeof(a)) +const double PI=acos(-1.0); +template T gcd(T a,T b){return b?gcd(b,a%b):a;} +template T lcm(T a,T b){return a/gcd(a,b)*b;} +template inline T Min(T a,T b){return a inline T Max(T a,T b){return a>b?a:b;} +using namespace std; +#define ll __int64 +int n,m; +#define Mod 10 +#define N 10010 +#define M 1000010 +struct Edge{ //´æ´¢±ßµÄ½á¹¹Ìå + int to; + int next; +}; +struct Node{ //´æ´¢µãµÄ½á¹¹Ìå + int id; + int step; +}; +struct sqQueue{ //¶ÓÁеĽṹÌå + Node *base; + int front; + int rear; +}; +Edge edge[N]; // +int head[N]; +int vis[N]; +int cnt; +sqQueue Q; +void Init(){ + memset(head,-1,sizeof head); + cnt=0; +} +void addEdge(int u,int v){ //Ìí¼Ó±ß + edge[cnt].to = v; + edge[cnt].next = head[u]; + head[u] = cnt++; +} +void InitQueue(sqQueue &Q){ //³õʼ»¯¶ÓÁÐ + Q.base = new Node[M]; + if(!Q.base) + exit(OVERFLOW); + Q.front = Q.rear = 0; + return; +} +int QueueLength(sqQueue Q){ //Çó¶ÓÁеij¤¶È + return(Q.rear-Q.front+M)%M; +} +int EnQueue(sqQueue &Q,Node e){ //Èë¶Ó + if((Q.rear+1)%M == Q.front) + return 0; + Q.base[Q.rear] = e; + Q.rear = (Q.rear+1)%M; + return 1; +} +int DeQueue(sqQueue &Q){ //³ö¶Ó + if(Q.front == Q.rear) + return 0; + Q.front = (Q.front+1)%M; + return 1; +} +Node getHead(sqQueue Q){ //µÃµ½¶ÓÁÐÍ·²¿µÄÔªËØ + return Q.base[Q.front]; +} +void bfs(){ //ÓÃbfsÀ´ËÑË÷Óë³õʼµã¾àÀë²»³¬¹ý7µÄµãµÄ¸öÊýÕ¼×ÜÊýµÄ°Ù·Ö±È + memset(vis,0,sizeof vis); + InitQueue(Q); + Node cur,next; + cur.id = 0; + cur.step = 0; + EnQueue(Q,cur); + vis[0] = 1; + int num = 0; + while(QueueLength(Q)){ + cur = getHead(Q); + DeQueue(Q); + if(cur.step>7){ + break; + } + num++; + int s = cur.id; + for(int p = head[s];p!=-1;p=edge[p].next){ + int v = edge[p].to; + if(!vis[v]){ + next.id = v; + next.step = cur.step + 1; + vis[v] = 1; + EnQueue(Q,next); + } + } + } + printf("%.4f\n",num*1.0/n); +} +int main(){ +#ifndef ONLINE_JUDGE + freopen("in.txt","r",stdin); +// freopen("out.txt","w",stdout); +#endif + while(sfd(n,m)!=EOF){ //nΪ¶¥µãµÄÊýÁ¿£¬mΪ±ßµÄÊýÁ¿,µãµÄ±àºÅ´Ó0-n-1 + Init(); //³õʼ»¯ + int u,v; + for(int i=0;i +using namespace std; + +#define MVNum 100 //×î´ó¶¥µãÊý +#define OK 1 + +typedef char VerTexType; //¶¥µãÐÅÏ¢ +typedef int OtherInfo; //ºÍ±ßÏà¹ØµÄÐÅÏ¢ + +//- - - - -ͼµÄÁÚ½Ó±í´æ´¢±íʾ- - - - - +typedef struct ArcNode{ //±ß½áµã + int adjvex; //¸Ã±ßËùÖ¸ÏòµÄ¶¥µãµÄλÖà + struct ArcNode *nextarc; //Ö¸ÏòÏÂÒ»Ìõ±ßµÄÖ¸Õë + OtherInfo info; //ºÍ±ßÏà¹ØµÄÐÅÏ¢ +}ArcNode; + +typedef struct VNode{ + VerTexType data; //¶¥µãÐÅÏ¢ + ArcNode *firstarc; //Ö¸ÏòµÚÒ»ÌõÒÀ¸½¸Ã¶¥µãµÄ±ßµÄÖ¸Õë +}VNode, AdjList[MVNum]; //AdjList±íʾÁÚ½Ó±íÀàÐÍ + +typedef struct{ + AdjList vertices; //ÁÚ½Ó±í + int vexnum, arcnum; //ͼµÄµ±Ç°¶¥µãÊýºÍ±ßÊý +}ALGraph; + + +int LocateVex(ALGraph G , VerTexType v){ + //È·¶¨µãvÔÚGÖеÄλÖà + for(int i = 0; i < G.vexnum; ++i) + if(G.vertices[i].data == v) + return i; + return -1; +}//LocateVex + +int CreateUDG(ALGraph &G){ + //²ÉÓÃÁÚ½Ó±í±íʾ·¨£¬´´½¨ÎÞÏòͼG + int i , k; + + cout <<"ÇëÊäÈë×ܶ¥µãÊý£¬×ܱßÊýÖмäÒÔ¿Õ¸ñ¸ô¿ª:"; + cin >> G.vexnum >> G.arcnum; //ÊäÈë×ܶ¥µãÊý£¬×ܱßÊý + cout << endl; + + cout << "ÊäÈëµãµÄÃû³Æ£¬Èç a " <> G.vertices[i].data; //ÊäÈë¶¥µãÖµ + G.vertices[i].firstarc=NULL; //³õʼ»¯±íÍ·½áµãµÄÖ¸ÕëÓòΪNULL + }//for + cout << endl; + + cout << "ÇëÊäÈëÒ»Ìõ±ßÒÀ¸½µÄ¶¥µã,Èç a b" << endl; + for(k = 0; k < G.arcnum;++k){ //ÊäÈë¸÷±ß£¬¹¹ÔìÁÚ½Ó±í + VerTexType v1 , v2; + int i , j; + cout << "ÇëÊäÈëµÚ" << (k + 1) << "Ìõ±ßÒÀ¸½µÄ¶¥µã:"; + cin >> v1 >> v2; //ÊäÈëÒ»Ìõ±ßÒÀ¸½µÄÁ½¸ö¶¥µã + i = LocateVex(G, v1); j = LocateVex(G, v2); + //È·¶¨v1ºÍv2ÔÚGÖÐλÖ㬼´¶¥µãÔÚG.verticesÖеÄÐòºÅ + + ArcNode *p1=new ArcNode; //Éú³ÉÒ»¸öеı߽áµã*p1 + p1->adjvex=j; //ÁÚ½ÓµãÐòºÅΪj + p1->nextarc= G.vertices[i].firstarc; G.vertices[i].firstarc=p1; + //½«Ð½áµã*p1²åÈë¶¥µãviµÄ±ß±íÍ·²¿ + + ArcNode *p2=new ArcNode; //Éú³ÉÁíÒ»¸ö¶Ô³ÆµÄеı߽áµã*p2 + p2->adjvex=i; //ÁÚ½ÓµãÐòºÅΪi + p2->nextarc= G.vertices[j].firstarc; G.vertices[j].firstarc=p2; + //½«Ð½áµã*p2²åÈë¶¥µãvjµÄ±ß±íÍ·²¿ + }//for + return OK; +}//CreateUDG + +int main(){ + cout << "************Ëã·¨6.2¡¡²ÉÓÃÁÚ½Ó±í±íʾ·¨´´½¨ÎÞÏòͼ**************" << endl << endl; + ALGraph G; + CreateUDG(G); + int i; + + cout << endl; + cout << "*****ÁÚ½Ó±í±íʾ·¨´´½¨µÄÎÞÏòͼ*****" << endl; + + for(i = 0 ; i < G.vexnum ; ++i){ + VNode temp = G.vertices[i]; + ArcNode *p = temp.firstarc; + if(p == NULL){ + cout << G.vertices[i].data; + cout << endl; + } + else{ + cout << temp.data; + while(p){ + cout << "->"; + cout << p->adjvex; + p = p->nextarc; + } + } + cout << endl; + } + return 0; +}//main diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.3.cpp b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.3.cpp new file mode 100644 index 0000000..65cda6f --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第6ç« /6.3.cpp @@ -0,0 +1,114 @@ +//Ëã·¨6.3¡¡Éî¶ÈÓÅÏÈËÑË÷±éÀúÁ¬Í¨Í¼µÄµÝ¹éËã·¨ + +#include +using namespace std; + +#define MVNum 100 //×î´ó¶¥µãÊý +typedef char VerTexType; //¼ÙÉè¶¥µãµÄÊý¾ÝÀàÐÍΪ×Ö·ûÐÍ +typedef int ArcType; //¼ÙÉè±ßµÄȨֵÀàÐÍΪÕûÐÍ + +typedef struct{ + VerTexType vexs[MVNum]; //¶¥µã±í + ArcType arcs[MVNum][MVNum]; //ÁÚ½Ó¾ØÕó + int vexnum,arcnum; //ͼµÄµ±Ç°µãÊýºÍ±ßÊý +}Graph; + +bool visited[MVNum]; //·ÃÎʱêÖ¾Êý×飬Æä³õֵΪ"false" +int FirstAdjVex(Graph G , int v); //·µ»ØvµÄµÚÒ»¸öÁÚ½Óµã +int NextAdjVex(Graph G , int v , int w); //·µ»ØvÏà¶ÔÓÚwµÄÏÂÒ»¸öÁÚ½Óµã + +int LocateVex(Graph G , VerTexType v){ + //È·¶¨µãvÔÚGÖеÄλÖà + for(int i = 0; i < G.vexnum; ++i) + if(G.vexs[i] == v) + return i; + return -1; +}//LocateVex + +void CreateUDN(Graph &G){ + //²ÉÓÃÁÚ½Ó¾ØÕó±íʾ·¨£¬´´½¨ÎÞÏòÍøG + int i , j , k; + cout <<"ÇëÊäÈë×ܶ¥µãÊý£¬×ܱßÊý , ÒÔ¿Õ¸ñ¸ô¿ª:"; + cin >> G.vexnum >> G.arcnum; //ÊäÈë×ܶ¥µãÊý£¬×ܱßÊý + cout << endl; + + cout << "ÊäÈëµãµÄÃû³Æ£¬Èç a£º" << endl; + + for(i = 0; i < G.vexnum; ++i){ + cout << "ÇëÊäÈëµÚ" << (i+1) << "¸öµãµÄÃû³Æ:"; + cin >> G.vexs[i]; //ÒÀ´ÎÊäÈëµãµÄÐÅÏ¢ + } + cout << endl; + + for(i = 0; i < G.vexnum; ++i) //³õʼ»¯ÁÚ½Ó¾ØÕ󣬱ߵÄȨֵ¾ùÖÃΪ¼«´óÖµMaxInt + for(j = 0; j < G.vexnum; ++j) + G.arcs[i][j] = 0; + cout << "ÊäÈë±ßÒÀ¸½µÄ¶¥µã£¬È磺a b" << endl; + for(k = 0; k < G.arcnum;++k){ //¹¹ÔìÁÚ½Ó¾ØÕó + VerTexType v1 , v2; + cout << "ÇëÊäÈëµÚ" << (k + 1) << "Ìõ±ßÒÀ¸½µÄ¶¥µã:"; + cin >> v1 >> v2; //ÊäÈëÒ»Ìõ±ßÒÀ¸½µÄ¶¥µã¼°È¨Öµ + i = LocateVex(G, v1); j = LocateVex(G, v2); //È·¶¨v1ºÍv2ÔÚGÖеÄλÖ㬼´¶¥µãÊý×éµÄϱê + G.arcs[j][i] = G.arcs[i][j] = 1; //ÖõĶԳƱߵÄȨֵΪw + }//for +}//CreateUDN + +void DFS(Graph G, int v){ //´ÓµÚv¸ö¶¥µã³ö·¢µÝ¹éµØÉî¶ÈÓÅÏȱéÀúͼG + cout << G.vexs[v] << " "; visited[v] = true; //·ÃÎʵÚv¸ö¶¥µã£¬²¢Ö÷ÃÎʱêÖ¾Êý×éÏàÓ¦·ÖÁ¿ÖµÎªtrue + int w; + for(w = FirstAdjVex(G, v); w >= 0; w = NextAdjVex(G, v, w)) + //ÒÀ´Î¼ì²évµÄËùÓÐÁÚ½Óµãw £¬FirstAdjVex(G, v)±íʾvµÄµÚÒ»¸öÁÚ½Óµã + //NextAdjVex(G, v, w)±íʾvÏà¶ÔÓÚwµÄÏÂÒ»¸öÁڽӵ㣬w¡Ý0±íʾ´æÔÚÁÚ½Óµã + if(!visited[w]) DFS(G, w); //¶ÔvµÄÉÐδ·ÃÎʵÄÁÚ½Ó¶¥µãwµÝ¹éµ÷ÓÃDFS +}//DFS + +int FirstAdjVex(Graph G , int v){ + int i; + for(i = 0 ; i < G.vexnum ; ++i){ + if(G.arcs[v][i] == 1 && visited[i] == false) + return i; + } + return -1; +}//FirstAdjVex + +int NextAdjVex(Graph G , int v , int w){ + int i; + for(i = w ; i < G.vexnum ; ++i){ + if(G.arcs[v][i] == 1 && visited[i] == false) + return i; + } + return -1; +}//NextAdjVex + +int main(){ + cout << "************Ëã·¨6.3¡¡Éî¶ÈÓÅÏÈËÑË÷±éÀúÁ¬Í¨Í¼µÄµÝ¹éËã·¨**************" << endl << endl; + Graph G; + CreateUDN(G); + cout << endl; + cout << "ÎÞÏòÁ¬Í¨Í¼G´´½¨Íê³É£¡" << endl << endl; + + cout << "ÇëÊäÈë±éÀúÁ¬Í¨Í¼µÄÆðʼµã£º"; + VerTexType c; + cin >> c; + + int i; + for(i = 0 ; i < G.vexnum ; ++i){ + if(c == G.vexs[i]) + break; + } + cout << endl; + while(i >= G.vexnum){ + cout << "¸Ãµã²»´æÔÚ£¬ÇëÖØÐÂÊäÈ룡" << endl; + cout << "ÇëÊäÈë±éÀúÁ¬Í¨Í¼µÄÆðʼµã£º"; + cin >> c; + for(i = 0 ; i < G.vexnum ; ++i){ + if(c == G.vexs[i]) + break; + } + } + cout << "Éî¶ÈÓÅÏÈËÑË÷±éÀúÁ¬Í¨Í¼½á¹û£º" << endl; + DFS(G , i); + + cout < +using namespace std; + +#define MVNum 100 //×î´ó¶¥µãÊý +typedef char VerTexType; //¼ÙÉè¶¥µãµÄÊý¾ÝÀàÐÍΪ×Ö·ûÐÍ +typedef int ArcType; //¼ÙÉè±ßµÄȨֵÀàÐÍΪÕûÐÍ + +//-------------ͼµÄÁÚ½Ó¾ØÕó----------------- +typedef struct{ + VerTexType vexs[MVNum]; //¶¥µã±í + ArcType arcs[MVNum][MVNum]; //ÁÚ½Ó¾ØÕó + int vexnum,arcnum; //ͼµÄµ±Ç°µãÊýºÍ±ßÊý +}Graph; + +bool visited[MVNum]; //·ÃÎʱêÖ¾Êý×飬Æä³õֵΪ"false" +int FirstAdjVex(Graph G , int v); //·µ»ØvµÄµÚÒ»¸öÁÚ½Óµã +int NextAdjVex(Graph G , int v , int w); //·µ»ØvÏà¶ÔÓÚwµÄÏÂÒ»¸öÁÚ½Óµã + +int LocateVex(Graph G , VerTexType v){ + //È·¶¨µãvÔÚGÖеÄλÖà + for(int i = 0; i < G.vexnum; ++i) + if(G.vexs[i] == v) + return i; + return -1; +}//LocateVex + +void CreateUDN(Graph &G){ + //²ÉÓÃÁÚ½Ó¾ØÕó±íʾ·¨£¬´´½¨ÎÞÏòÍøG + int i , j , k; + cout <<"ÇëÊäÈë×ܶ¥µãÊý£¬×ܱßÊý£¬ÒÔ¿Õ¸ñ¸ô¿ª:"; + cin >> G.vexnum >> G.arcnum; //ÊäÈë×ܶ¥µãÊý£¬×ܱßÊý + cout << endl; + + cout << "ÊäÈëµãµÄÃû³Æ£¬Èça" << endl; + for(i = 0; i < G.vexnum; ++i){ + cout << "ÇëÊäÈëµÚ" << (i+1) << "¸öµãµÄÃû³Æ:"; + cin >> G.vexs[i]; //ÒÀ´ÎÊäÈëµãµÄÐÅÏ¢ + } + cout << endl; + for(i = 0; i < G.vexnum; ++i) //³õʼ»¯ÁÚ½Ó¾ØÕ󣬱ߵÄȨֵ¾ùÖÃΪ¼«´óÖµMaxInt + for(j = 0; j < G.vexnum; ++j) + G.arcs[i][j] = 0; + cout << "ÊäÈë±ßÒÀ¸½µÄ¶¥µã£¬Èça b" << endl; + for(k = 0; k < G.arcnum;++k){ //¹¹ÔìÁÚ½Ó¾ØÕó + VerTexType v1 , v2; + cout << "ÇëÊäÈëµÚ" << (k + 1) << "Ìõ±ßÒÀ¸½µÄ¶¥µã:"; + cin >> v1 >> v2; //ÊäÈëÒ»Ìõ±ßÒÀ¸½µÄ¶¥µã¼°È¨Öµ + i = LocateVex(G, v1); j = LocateVex(G, v2); //È·¶¨v1ºÍv2ÔÚGÖеÄλÖ㬼´¶¥µãÊý×éµÄϱê + G.arcs[j][i] = G.arcs[i][j] = 1; //ÖõĶԳƱߵÄȨֵΪw + }//for +}//CreateUDN + +void DFS(Graph G, int v){ + //´ÓµÚv¸ö¶¥µã³ö·¢µÝ¹éµØÉî¶ÈÓÅÏȱéÀúͼG + cout << G.vexs[v] << " "; visited[v] = true; //·ÃÎʵÚv¸ö¶¥µã£¬²¢Ö÷ÃÎʱêÖ¾Êý×éÏàÓ¦·ÖÁ¿ÖµÎªtrue + int w; + for(w = FirstAdjVex(G, v); w >= 0; w = NextAdjVex(G, v, w)) + //ÒÀ´Î¼ì²évµÄËùÓÐÁÚ½Óµãw £¬FirstAdjVex(G, v)±íʾvµÄµÚÒ»¸öÁÚ½Óµã + //NextAdjVex(G, v, w)±íʾvÏà¶ÔÓÚwµÄÏÂÒ»¸öÁڽӵ㣬w¡Ý0±íʾ´æÔÚÁÚ½Óµã + if(!visited[w]) DFS(G, w); //¶ÔvµÄÉÐδ·ÃÎʵÄÁÚ½Ó¶¥µãwµÝ¹éµ÷ÓÃDFS +}//DFS + +void DFSTraverse(Graph G){ + //¶Ô·ÇÁ¬Í¨Í¼G×öÉî¶ÈÓÅÏȱéÀú + int v; + for(v = 0; v < G.vexnum; ++v) visited[v] = false; //·ÃÎʱêÖ¾Êý×é³õʼ»¯ + for(v = 0; v < G.vexnum; ++v) //Ñ­»·µ÷ÓÃËã·¨6.3 + if(!visited[v]) DFS(G, v); //¶ÔÉÐδ·ÃÎʵĶ¥µãµ÷ÓÃDFS +}//DFSTraverse + +int FirstAdjVex(Graph G , int v){ + //·µ»ØvµÄµÚÒ»¸öÁÚ½Óµã + int i; + for(i = 0 ; i < G.vexnum ; ++i){ + if(G.arcs[v][i] == 1 && visited[i] == false) + return i; + } + return -1; +}//FirstAdjVex + +int NextAdjVex(Graph G , int v , int w){ + //·µ»ØvÏà¶ÔÓÚwµÄÏÂÒ»¸öÁÚ½Óµã + int i; + for(i = w ; i < G.vexnum ; ++i){ + if(G.arcs[v][i] == 1 && visited[i] == false) + return i; + } + return -1; +}//NextAdjVex + +int main(){ + cout << "************Ëã·¨6.4¡¡Éî¶ÈÓÅÏÈËÑË÷±éÀú·ÇÁ¬Í¨Í¼**************" << endl << endl; + Graph G; + CreateUDN(G); + cout << endl; + cout << "ÎÞÏòͼG´´½¨Íê³É£¡" << endl << endl; + + cout << "Éî¶ÈÓÅÏÈËÑË÷±éÀú·ÇÁ¬Í¨Í¼½á¹û£º" << endl; + DFSTraverse(G); + + cout < +using namespace std; + +#define MVNum 100 //×î´ó¶¥µãÊý +typedef char VerTexType; //¼ÙÉè¶¥µãµÄÊý¾ÝÀàÐÍΪ×Ö·ûÐÍ +typedef int ArcType; //¼ÙÉè±ßµÄȨֵÀàÐÍΪÕûÐÍ + +//------------ͼµÄÁÚ½Ó¾ØÕó------------------ +typedef struct{ + VerTexType vexs[MVNum]; //¶¥µã±í + ArcType arcs[MVNum][MVNum]; //ÁÚ½Ó¾ØÕó + int vexnum,arcnum; //ͼµÄµ±Ç°µãÊýºÍ±ßÊý +}Graph; + +bool visited[MVNum]; //·ÃÎʱêÖ¾Êý×飬Æä³õֵΪ"false" +int FirstAdjVex(Graph G , int v); //·µ»ØvµÄµÚÒ»¸öÁÚ½Óµã +int NextAdjVex(Graph G , int v , int w); //·µ»ØvÏà¶ÔÓÚwµÄÏÂÒ»¸öÁÚ½Óµã + +int LocateVex(Graph G , VerTexType v){ + //È·¶¨µãvÔÚGÖеÄλÖà + for(int i = 0; i < G.vexnum; ++i) + if(G.vexs[i] == v) + return i; + return -1; +}//LocateVex + +void CreateUDN(Graph &G){ + //²ÉÓÃÁÚ½Ó¾ØÕó±íʾ·¨£¬´´½¨ÎÞÏòÍøG + int i , j , k; + cout <<"ÇëÊäÈë×ܶ¥µãÊý£¬×ܱßÊý£¬ÒÔ¿Õ¸ñ¸ô¿ª:"; + cin >> G.vexnum >> G.arcnum; //ÊäÈë×ܶ¥µãÊý£¬×ܱßÊý + cout << endl; + + cout << "ÊäÈëµãµÄÃû³Æ£¬Èça" <> G.vexs[i]; //ÒÀ´ÎÊäÈëµãµÄÐÅÏ¢ + } + cout << endl; + + for(i = 0; i < G.vexnum; ++i) //³õʼ»¯ÁÚ½Ó¾ØÕ󣬱ߵÄȨֵ¾ùÖÃΪ¼«´óÖµMaxInt + for(j = 0; j < G.vexnum; ++j) + G.arcs[i][j] = 0; + cout << "ÊäÈë±ßÒÀ¸½µÄ¶¥µã£¬Èça b" << endl; + for(k = 0; k < G.arcnum;++k){ //¹¹ÔìÁÚ½Ó¾ØÕó + VerTexType v1 , v2; + cout << "ÇëÊäÈëµÚ" << (k + 1) << "Ìõ±ßÒÀ¸½µÄ¶¥µã:"; + cin >> v1 >> v2; //ÊäÈëÒ»Ìõ±ßÒÀ¸½µÄ¶¥µã¼°È¨Öµ + i = LocateVex(G, v1); j = LocateVex(G, v2); //È·¶¨v1ºÍv2ÔÚGÖеÄλÖ㬼´¶¥µãÊý×éµÄϱê + G.arcs[j][i] = G.arcs[i][j] = 1; //ÖõĶԳƱߵÄȨֵΪw + }//for +}//CreateUDN + +void DFS(Graph G, int v){ + //ͼGΪÁÚ½Ó¾ØÕóÀàÐÍ + int w; + cout << G.vexs[v] << " "; visited[v] = true; //·ÃÎʵÚv¸ö¶¥µã£¬²¢Ö÷ÃÎʱêÖ¾Êý×éÏàÓ¦·ÖÁ¿ÖµÎªtrue + for(w = 0; w < G.vexnum; w++) //ÒÀ´Î¼ì²éÁÚ½Ó¾ØÕóvËùÔÚµÄÐÐ + if((G.arcs[v][w] != 0)&& (!visited[w])) DFS(G, w); //G.arcs[v][w]!=0±íʾwÊÇvµÄÁڽӵ㣬Èç¹ûwδ·ÃÎÊ£¬ÔòµÝ¹éµ÷ÓÃDFS +}//DFS + +int FirstAdjVex(Graph G , int v){ + //·µ»ØvµÄµÚÒ»¸öÁÚ½Óµã + int i; + for(i = 0 ; i < G.vexnum ; ++i){ + if(G.arcs[v][i] == 1 && visited[i] == false) + return i; + } + return -1; +}//FirstAdjVex + +int NextAdjVex(Graph G , int v , int w){ + //·µ»ØvÏà¶ÔÓÚwµÄÏÂÒ»¸öÁÚ½Óµã + int i; + for(i = w ; i < G.vexnum ; ++i){ + if(G.arcs[v][i] == 1 && visited[i] == false) + return i; + } + return -1; +}//NextAdjVex + +int main(){ + cout << "************Ëã·¨6.5¡¡²ÉÓÃÁÚ½Ó¾ØÕó±íʾͼµÄÉî¶ÈÓÅÏÈËÑË÷±éÀú**************" << endl << endl; + Graph G; + CreateUDN(G); + cout << endl; + cout << "ÎÞÏòͼG´´½¨Íê³É£¡" << endl << endl; + + cout << "ÇëÊäÈë±éÀúÎÞÏòͼGµÄÆðʼµã£º"; + VerTexType c; + cin >> c; + + int i; + for(i = 0 ; i < G.vexnum ; ++i){ + if(c == G.vexs[i]) + break; + } + cout << endl; + while(i >= G.vexnum){ + cout << "¸Ãµã²»´æÔÚ£¬ÇëÖØÐÂÊäÈ룡" << endl; + cout << "ÇëÊäÈë±éÀúÁ¬Í¨Í¼µÄÆðʼµã£º"; + cin >> c; + for(i = 0 ; i < G.vexnum ; ++i){ + if(c == G.vexs[i]) + break; + } + } + cout << "Éî¶ÈÓÅÏÈËÑË÷±éÀúÎÞÏòͼG½á¹û£º" << endl; + DFS(G , i); + + cout < +using namespace std; + +#define MVNum 100 //×î´ó¶¥µãÊý +typedef char VerTexType; //¼ÙÉè¶¥µãµÄÊý¾ÝÀàÐÍΪ×Ö·ûÐÍ + +//-------------ͼµÄÁÚ½Ó±í--------------------- +typedef struct ArcNode{ //±ß½áµã + int adjvex; //¸Ã±ßËùÖ¸ÏòµÄ¶¥µãµÄλÖà + struct ArcNode *nextarc; //Ö¸ÏòÏÂÒ»Ìõ±ßµÄÖ¸Õë +}ArcNode; + +typedef struct VNode{ + VerTexType data; //¶¥µãÐÅÏ¢ + ArcNode *firstarc; //Ö¸ÏòµÚÒ»ÌõÒÀ¸½¸Ã¶¥µãµÄ±ßµÄÖ¸Õë +}VNode, AdjList[MVNum]; //AdjList±íʾÁÚ½Ó±íÀàÐÍ + +typedef struct{ + AdjList vertices; //ÁÚ½Ó±í + int vexnum, arcnum; //ͼµÄµ±Ç°¶¥µãÊýºÍ±ßÊý +}ALGraph; + +bool visited[MVNum]; //·ÃÎʱêÖ¾Êý×飬Æä³õֵΪ"false" + +int LocateVex(ALGraph G , VerTexType v){ + //È·¶¨µãvÔÚGÖеÄλÖà + for(int i = 0; i < G.vexnum; ++i) + if(G.vertices[i].data == v) + return i; + return -1; +}//LocateVex + +void CreateUDG(ALGraph &G){ + //²ÉÓÃÁÚ½Ó±í±íʾ·¨£¬´´½¨ÎÞÏòͼG + int i , k; + + cout <<"ÇëÊäÈë×ܶ¥µãÊý£¬×ܱßÊý£¬ÒÔ¿Õ¸ñ¸ô¿ª:"; + cin >> G.vexnum >> G.arcnum; //ÊäÈë×ܶ¥µãÊý£¬×ܱßÊý + cout << endl; + + cout << "ÊäÈëµãµÄÃû³Æ£¬Èça" << endl; + + for(i = 0; i < G.vexnum; ++i){ //ÊäÈë¸÷µã£¬¹¹Ôì±íÍ·½áµã±í + cout << "ÇëÊäÈëµÚ" << (i+1) << "¸öµãµÄÃû³Æ:"; + cin >> G.vertices[i].data; //ÊäÈë¶¥µãÖµ + G.vertices[i].firstarc=NULL; //³õʼ»¯±íÍ·½áµãµÄÖ¸ÕëÓòΪNULL + }//for + cout << endl; + + cout << "ÊäÈë±ßÒÀ¸½µÄ¶¥µã£¬Èça b" << endl; + + for(k = 0; k < G.arcnum;++k){ //ÊäÈë¸÷±ß£¬¹¹ÔìÁÚ½Ó±í + VerTexType v1 , v2; + int i , j; + cout << "ÇëÊäÈëµÚ" << (k + 1) << "Ìõ±ßÒÀ¸½µÄ¶¥µã:"; + cin >> v1 >> v2; //ÊäÈëÒ»Ìõ±ßÒÀ¸½µÄÁ½¸ö¶¥µã + i = LocateVex(G, v1); j = LocateVex(G, v2); + //È·¶¨v1ºÍv2ÔÚGÖÐλÖ㬼´¶¥µãÔÚG.verticesÖеÄÐòºÅ + + ArcNode *p1=new ArcNode; //Éú³ÉÒ»¸öеı߽áµã*p1 + p1->adjvex=j; //ÁÚ½ÓµãÐòºÅΪj + p1->nextarc= G.vertices[i].firstarc; G.vertices[i].firstarc=p1; + //½«Ð½áµã*p1²åÈë¶¥µãviµÄ±ß±íÍ·²¿ + + ArcNode *p2=new ArcNode; //Éú³ÉÁíÒ»¸ö¶Ô³ÆµÄеı߽áµã*p2 + p2->adjvex=i; //ÁÚ½ÓµãÐòºÅΪi + p2->nextarc= G.vertices[j].firstarc; G.vertices[j].firstarc=p2; + //½«Ð½áµã*p2²åÈë¶¥µãvjµÄ±ß±íÍ·²¿ + }//for +}//CreateUDG + +void DFS(ALGraph G, int v){ //ͼGΪÁÚ½Ó±íÀàÐÍ + cout << G.vertices[v].data << " "; + visited[v] = true; //·ÃÎʵÚv¸ö¶¥µã£¬²¢Ö÷ÃÎʱêÖ¾Êý×éÏàÓ¦·ÖÁ¿ÖµÎªtrue + ArcNode *p = G.vertices[v].firstarc; //pÖ¸ÏòvµÄ±ßÁ´±íµÄµÚÒ»¸ö±ß½áµã + while(p != NULL){ //±ß½áµã·Ç¿Õ + int w = p->adjvex; //±íʾwÊÇvµÄÁÚ½Óµã + if(!visited[w]) DFS(G, w); //Èç¹ûwδ·ÃÎÊ£¬ÔòµÝ¹éµ÷ÓÃDFS + p = p->nextarc; //pÖ¸ÏòÏÂÒ»¸ö±ß½áµã + } +}//DFS + +int main(){ + cout << "************Ëã·¨6.6¡¡²ÉÓÃÁÚ½Ó±í±íʾͼµÄÉî¶ÈÓÅÏÈËÑË÷±éÀú**************" << endl << endl; + ALGraph G; + CreateUDG(G); + cout << endl; + cout << "ÎÞÏòÁ¬Í¨Í¼G´´½¨Íê³É£¡" << endl << endl; + + cout << "ÇëÊäÈë±éÀúÁ¬Í¨Í¼µÄÆðʼµã£º"; + VerTexType c; + cin >> c; + + int i; + for(i = 0 ; i < G.vexnum ; ++i){ + if(c == G.vertices[i].data) + break; + } + cout << endl; + while(i >= G.vexnum){ + cout << "¸Ãµã²»´æÔÚ£¬ÇëÖØÐÂÊäÈ룡" << endl; + cout << "ÇëÊäÈë±éÀúÁ¬Í¨Í¼µÄÆðʼµã£º"; + cin >> c; + for(i = 0 ; i < G.vexnum ; ++i){ + if(c == G.vertices[i].data) + break; + } + } + + cout << "Éî¶ÈÓÅÏÈËÑË÷±éÀúͼ½á¹û£º" << endl; + DFS(G , i); + + cout < +using namespace std; + +#define MVNum 100 //×î´ó¶¥µãÊý +#define MAXQSIZE 100 //×î´ó¶ÓÁг¤¶È + +typedef char VerTexType; //¼ÙÉè¶¥µãµÄÊý¾ÝÀàÐÍΪ×Ö·ûÐÍ +typedef int ArcType; //¼ÙÉè±ßµÄȨֵÀàÐÍΪÕûÐÍ +bool visited[MVNum]; //·ÃÎʱêÖ¾Êý×飬Æä³õֵΪ"false" + +//-----ͼµÄÁÚ½Ó¾ØÕó´æ´¢±íʾ----- +typedef struct{ + VerTexType vexs[MVNum]; //¶¥µã±í + ArcType arcs[MVNum][MVNum]; //ÁÚ½Ó¾ØÕó + int vexnum,arcnum; //ͼµÄµ±Ç°µãÊýºÍ±ßÊý +}Graph; + +//----¶ÓÁе͍Òå¼°²Ù×÷-------- +typedef struct{ + ArcType *base; //³õʼ»¯µÄ¶¯Ì¬·ÖÅä´æ´¢¿Õ¼ä + int front; //Í·Ö¸Õ룬Èô¶ÓÁв»¿Õ£¬Ö¸Ïò¶ÓÍ·ÔªËØ + int rear; //βָÕ룬Èô¶ÓÁв»¿Õ£¬Ö¸Ïò¶ÓÎ²ÔªËØµÄÏÂÒ»¸öλÖà +}sqQueue; + +void InitQueue(sqQueue &Q){ + //¹¹ÔìÒ»¸ö¿Õ¶ÓÁÐQ + Q.base = new ArcType[MAXQSIZE]; + if(!Q.base) exit(1); //´æ´¢·ÖÅäʧ°Ü + Q.front = Q.rear = 0; +}//InitQueue + +void EnQueue(sqQueue &Q, ArcType e){ + //²åÈëÔªËØeΪQµÄеĶÓÎ²ÔªËØ + if((Q.rear + 1) % MAXQSIZE == Q.front) + return; + Q.base[Q.rear] = e; + Q.rear = (Q.rear + 1) % MAXQSIZE; +}//EnQueue + +bool QueueEmpty(sqQueue Q){ + //ÅжÏÊÇ·ñΪ¿Õ¶Ó + if(Q.rear == Q.front) + return true; + return false; +}//QueueEmpty + +void DeQueue(sqQueue &Q, ArcType &u){ + //¶ÓÍ·ÔªËØ³ö¶Ó²¢ÖÃΪu + u = Q.base[Q.front]; + Q.front = (Q.front + 1) % MAXQSIZE; +}//DeQueue +//-------------------------------------------------- + +int LocateVex(Graph G , VerTexType v){ + //È·¶¨µãvÔÚGÖеÄλÖà + for(int i = 0; i < G.vexnum; ++i) + if(G.vexs[i] == v) + return i; + return -1; +}//LocateVex + +void CreateUDN(Graph &G){ + //²ÉÓÃÁÚ½Ó¾ØÕó±íʾ·¨£¬´´½¨ÎÞÏòÍøG + int i , j , k; + cout <<"ÇëÊäÈë×ܶ¥µãÊý£¬×ܱßÊý£¬ÒÔ¿Õ¸ñ¸ô¿ª:"; + cin >> G.vexnum >> G.arcnum; //ÊäÈë×ܶ¥µãÊý£¬×ܱßÊý + cout << endl; + cout << "ÊäÈëµãµÄÃû³Æ£¬Èça" << endl; + for(i = 0; i < G.vexnum; ++i){ + cout << "ÇëÊäÈëµÚ" << (i+1) << "¸öµãµÄÃû³Æ:"; + cin >> G.vexs[i]; //ÒÀ´ÎÊäÈëµãµÄÐÅÏ¢ + } + cout << endl; + for(i = 0; i < G.vexnum; ++i) //³õʼ»¯ÁÚ½Ó¾ØÕ󣬱ߵÄȨֵ¾ùÖÃΪ¼«´óÖµMaxInt + for(j = 0; j < G.vexnum; ++j) + G.arcs[i][j] = 0; + cout << "ÊäÈë±ßÒÀ¸½µÄ¶¥µã£¬Èça b" << endl; + for(k = 0; k < G.arcnum;++k){ //¹¹ÔìÁÚ½Ó¾ØÕó + VerTexType v1 , v2; + cout << "ÇëÊäÈëµÚ" << (k + 1) << "Ìõ±ßÒÀ¸½µÄ¶¥µã:"; + cin >> v1 >> v2; //ÊäÈëÒ»Ìõ±ßÒÀ¸½µÄ¶¥µã + i = LocateVex(G, v1); j = LocateVex(G, v2); //È·¶¨v1ºÍv2ÔÚGÖеÄλÖ㬼´¶¥µãÊý×éµÄϱê + G.arcs[i][j] = 1; //±ßµÄȨֵÖÃΪw + G.arcs[j][i] = G.arcs[i][j]; //ÖõĶԳƱߵÄȨֵΪw + }//for +}//CreateUDN + +int FirstAdjVex(Graph G , int v){ + //·µ»ØvµÄµÚÒ»¸öÁÚ½Óµã + int i; + for(i = 0 ; i < G.vexnum ; ++i){ + if(G.arcs[v][i] == 1 && visited[i] == false) + return i; + } + return -1; +}//FirstAdjVex + +int NextAdjVex(Graph G , int u , int w){ + //·µ»ØvÏà¶ÔÓÚwµÄÏÂÒ»¸öÁÚ½Óµã + int i; + for(i = w ; i < G.vexnum ; ++i){ + if(G.arcs[u][i] == 1 && visited[i] == false) + return i; + } + return -1; +}//NextAdjVex + +void BFS (Graph G, int v){ + //°´¹ã¶ÈÓÅÏȷǵݹé±éÀúÁ¬Í¨Í¼G + sqQueue Q; + ArcType u; + ArcType w; + + cout << G.vexs[v] << " "; visited[v] = true; //·ÃÎʵÚv¸ö¶¥µã£¬²¢Ö÷ÃÎʱêÖ¾Êý×éÏàÓ¦·ÖÁ¿ÖµÎªtrue + InitQueue(Q); //¸¨Öú¶ÓÁÐQ³õʼ»¯£¬ÖÃ¿Õ + EnQueue(Q, v); //v½ø¶Ó + while(!QueueEmpty(Q)){ //¶ÓÁÐ·Ç¿Õ + DeQueue(Q, u); //¶ÓÍ·ÔªËØ³ö¶Ó²¢ÖÃΪu + for(w = FirstAdjVex(G, u); w >= 0; w = NextAdjVex(G, u, w)){ + //ÒÀ´Î¼ì²éuµÄËùÓÐÁÚ½Óµãw £¬FirstAdjVex(G, u)±íʾuµÄµÚÒ»¸öÁÚ½Óµã + //NextAdjVex(G, u, w)±íʾuÏà¶ÔÓÚwµÄÏÂÒ»¸öÁڽӵ㣬w¡Ý0±íʾ´æÔÚÁÚ½Óµã + if(!visited[w]){ //wΪuµÄÉÐδ·ÃÎʵÄÁÚ½Ó¶¥µã + cout << G.vexs[w] << " "; visited[w] = true; //·ÃÎÊw£¬²¢Ö÷ÃÎʱêÖ¾Êý×éÏàÓ¦·ÖÁ¿ÖµÎªtrue + EnQueue(Q, w); //w½ø¶Ó + }//if + }//for + }//while +}//BFS + +int main(){ + cout << "************Ëã·¨6.7¡¡¹ã¶ÈÓÅÏÈËÑË÷±éÀúÁ¬Í¨Í¼**************" << endl << endl; + Graph G; + CreateUDN(G); + cout << endl; + cout << "ÎÞÏòÁ¬Í¨Í¼G´´½¨Íê³É£¡" << endl << endl; + + cout << "ÇëÊäÈë±éÀúÁ¬Í¨Í¼µÄÆðʼµã£º"; + VerTexType c; + cin >> c; + + int i; + for(i = 0 ; i < G.vexnum ; ++i){ + if(c == G.vexs[i]) + break; + } + cout << endl; + while(i >= G.vexnum){ + cout << "¸Ãµã²»´æÔÚ£¬ÇëÖØÐÂÊäÈ룡" << endl; + cout << "ÇëÊäÈë±éÀúÁ¬Í¨Í¼µÄÆðʼµã£º"; + cin >> c; + for(i = 0 ; i < G.vexnum ; ++i){ + if(c == G.vexs[i]) + break; + } + } + cout << "Éî¶ÈÓÅÏÈËÑË÷±éÀúÁ¬Í¨Í¼½á¹û£º" << endl; + BFS(G , i); + + cout < +using namespace std; + +typedef char VerTexType; +typedef int ArcType; +#define MVNum 100 +#define MaxInt 32767 //±íʾ¼«´óÖµ£¬¼´¡Þ + +//¸¨ÖúÊý×éµÄ¶¨Ò壬ÓÃÀ´¼Ç¼´Ó¶¥µã¼¯Uµ½V-UµÄȨֵ×îСµÄ±ß +struct{ + VerTexType adjvex; //×îС±ßÔÚUÖеÄÄǸö¶¥µã + ArcType lowcost; //×îС±ßÉϵÄȨֵ +}closedge[MVNum]; + +//- - - - -ͼµÄÁÚ½Ó±í´æ´¢±íʾ- - - - - +typedef char VerTexType; //¼ÙÉè¶¥µãµÄÊý¾ÝÀàÐÍΪ×Ö·ûÐÍ +typedef int ArcType; //¼ÙÉè±ßµÄȨֵÀàÐÍΪÕûÐÍ +typedef struct{ + VerTexType vexs[MVNum]; //¶¥µã±í + ArcType arcs[MVNum][MVNum]; //ÁÚ½Ó¾ØÕó + int vexnum,arcnum; //ͼµÄµ±Ç°µãÊýºÍ±ßÊý +}AMGraph; + +int LocateVex(AMGraph G , VerTexType v){ + //È·¶¨µãvÔÚGÖеÄλÖà + for(int i = 0; i < G.vexnum; ++i) + if(G.vexs[i] == v) + return i; + return -1; +}//LocateVex + +void CreateUDN(AMGraph &G){ + //²ÉÓÃÁÚ½Ó¾ØÕó±íʾ·¨£¬´´½¨ÎÞÏòÍøG + int i , j , k; + cout <<"ÇëÊäÈë×ܶ¥µãÊý£¬×ܱßÊý£¬ÒÔ¿Õ¸ñ¸ô¿ª:"; + cin >> G.vexnum >> G.arcnum; //ÊäÈë×ܶ¥µãÊý£¬×ܱßÊý + cout << endl; + + cout << "ÊäÈëµãµÄÃû³Æ£¬Èça" << endl; + + for(i = 0; i < G.vexnum; ++i){ + cout << "ÇëÊäÈëµÚ" << (i+1) << "¸öµãµÄÃû³Æ:"; + cin >> G.vexs[i]; //ÒÀ´ÎÊäÈëµãµÄÐÅÏ¢ + } + cout << endl; + for(i = 0; i < G.vexnum; ++i) //³õʼ»¯ÁÚ½Ó¾ØÕ󣬱ߵÄȨֵ¾ùÖÃΪ¼«´óÖµMaxInt + for(j = 0; j < G.vexnum; ++j) + G.arcs[i][j] = MaxInt; + cout << "ÊäÈë±ßÒÀ¸½µÄ¶¥µã¼°È¨Öµ£¬Èça b 5" << endl; + for(k = 0; k < G.arcnum;++k){ //¹¹ÔìÁÚ½Ó¾ØÕó + VerTexType v1 , v2; + ArcType w; + cout << "ÇëÊäÈëµÚ" << (k + 1) << "Ìõ±ßÒÀ¸½µÄ¶¥µã¼°È¨Öµ:"; + cin >> v1 >> v2 >> w; //ÊäÈëÒ»Ìõ±ßÒÀ¸½µÄ¶¥µã¼°È¨Öµ + i = LocateVex(G, v1); j = LocateVex(G, v2); //È·¶¨v1ºÍv2ÔÚGÖеÄλÖ㬼´¶¥µãÊý×éµÄϱê + G.arcs[i][j] = w; //±ßµÄȨֵÖÃΪw + G.arcs[j][i] = G.arcs[i][j]; //ÖõĶԳƱߵÄȨֵΪw + }//for +}//CreateUDN + +int Min(AMGraph G){ + //·µ»ØÈ¨Öµ×îСµÄµã + int i; + int index = -1; + int min = MaxInt; + for(i = 0 ; i < G.vexnum ; ++i){ + if(min > closedge[i].lowcost && closedge[i].lowcost != 0){ + min = closedge[i].lowcost; + index = i; + } + }//for + return index; +}//Min + +void MiniSpanTree_Prim(AMGraph G, VerTexType u){ + //ÎÞÏòÍøGÒÔÁÚ½Ó¾ØÕóÐÎʽ´æ´¢£¬´Ó¶¥µãu³ö·¢¹¹ÔìGµÄ×îСÉú³ÉÊ÷T£¬Êä³öTµÄ¸÷Ìõ±ß + int k , j , i; + VerTexType u0 , v0; + k =LocateVex(G, u); //kΪ¶¥µãuµÄϱê + for(j = 0; j < G.vexnum; ++j){ //¶ÔV-UµÄÿһ¸ö¶¥µãvi£¬³õʼ»¯closedge[i] + if(j != k){ + closedge[j].adjvex = u; + closedge[j].lowcost = G.arcs[k][j]; //{adjvex, lowcost} + }//if + }//for + closedge[k].lowcost = 0; //³õʼ£¬U = {u} + for(i = 1; i < G.vexnum; ++i){ //Ñ¡ÔñÆäÓàn-1¸ö¶¥µã£¬Éú³Én-1Ìõ±ß(n= G.vexnum) + k = Min(G); + //Çó³öTµÄÏÂÒ»¸ö½áµã£ºµÚk¸ö¶¥µã£¬closedge[k]ÖдæÓе±Ç°×îС±ß + u0 = closedge[k].adjvex; //u0Ϊ×îС±ßµÄÒ»¸ö¶¥µã£¬u0¡ÊU + v0 = G.vexs[k]; //v0Ϊ×îС±ßµÄÁíÒ»¸ö¶¥µã£¬v0¡ÊV-U + cout << "±ß " <" << v0 << endl; //Êä³öµ±Ç°µÄ×îС±ß(u0, v0) + closedge[k].lowcost = 0; //µÚk¸ö¶¥µã²¢ÈëU¼¯ + for(j = 0; j < G.vexnum; ++j) + if(G.arcs[k][j] < closedge[j].lowcost){ //ж¥µã²¢ÈëUºóÖØÐÂÑ¡Ôñ×îС±ß + closedge[j].adjvex = G.vexs[k]; + closedge[j].lowcost = G.arcs[k][j]; + }//if + }//for +}//MiniSpanTree_Prim + +int main(){ + cout << "************Ëã·¨6.8¡¡ÆÕÀïÄ·Ëã·¨**************" << endl << endl; + AMGraph G; + CreateUDN(G); + cout << endl; + cout << "ÎÞÏòͼG´´½¨Íê³É£¡" << endl; + cout < +using namespace std; + +typedef char VerTexType; //¼ÙÉè¶¥µãµÄÊý¾ÝÀàÐÍΪ×Ö·ûÐÍ +typedef int ArcType; +#define MVNum 100 //×î´ó¶¥µãÊý +#define MaxInt 32767 //±íʾ¼«´óÖµ£¬¼´¡Þ + +//----------------ͼµÄÁÚ½Ó¾ØÕó--------------------- +typedef struct{ + VerTexType vexs[MVNum]; //¶¥µã±í + ArcType arcs[MVNum][MVNum]; //ÁÚ½Ó¾ØÕó + int vexnum,arcnum; //ͼµÄµ±Ç°µãÊýºÍ±ßÊý +}AMGraph; + +//¸¨ÖúÊý×éEdgesµÄ¶¨Òå +struct{ + VerTexType Head; //±ßµÄʼµã + VerTexType Tail; //±ßµÄÖÕµã + ArcType lowcost; //±ßÉϵÄȨֵ +}Edge[(MVNum * (MVNum - 1)) / 2]; + +int Vexset[MVNum]; //¸¨ÖúÊý×éVexsetµÄ¶¨Òå + +int LocateVex(AMGraph G , VerTexType v){ + //È·¶¨µãvÔÚGÖеÄλÖà + for(int i = 0; i < G.vexnum; ++i) + if(G.vexs[i] == v) + return i; + return -1; +}//LocateVex + +void CreateUDN(AMGraph &G){ + //²ÉÓÃÁÚ½Ó¾ØÕó±íʾ·¨£¬´´½¨ÎÞÏòÍøG + int i , j , k; + cout <<"ÇëÊäÈë×ܶ¥µãÊý£¬×ܱßÊý£¬ÒÔ¿Õ¸ñ¸ô¿ª:"; + cin >> G.vexnum >> G.arcnum; //ÊäÈë×ܶ¥µãÊý£¬×ܱßÊý + cout << endl; + + cout << "ÊäÈëµãµÄÃû³Æ£¬Èça" << endl; + + for(i = 0; i < G.vexnum; ++i){ + cout << "ÇëÊäÈëµÚ" << (i+1) << "¸öµãµÄÃû³Æ:"; + cin >> G.vexs[i]; //ÒÀ´ÎÊäÈëµãµÄÐÅÏ¢ + } + cout << endl; + for(i = 0; i < G.vexnum; ++i) //³õʼ»¯ÁÚ½Ó¾ØÕ󣬱ߵÄȨֵ¾ùÖÃΪ¼«´óÖµMaxInt + for(j = 0; j < G.vexnum; ++j) + G.arcs[i][j] = MaxInt; + cout << "ÊäÈë±ßÒÀ¸½µÄ¶¥µã¼°È¨Öµ£¬Èça b 6" << endl; + for(k = 0; k < G.arcnum;++k){ //¹¹ÔìÁÚ½Ó¾ØÕó + VerTexType v1 , v2; + ArcType w; + cout << "ÇëÊäÈëµÚ" << (k + 1) << "Ìõ±ßÒÀ¸½µÄ¶¥µã¼°È¨Öµ:"; + cin >> v1 >> v2 >> w; //ÊäÈëÒ»Ìõ±ßÒÀ¸½µÄ¶¥µã¼°È¨Öµ + i = LocateVex(G, v1); j = LocateVex(G, v2); //È·¶¨v1ºÍv2ÔÚGÖеÄλÖ㬼´¶¥µãÊý×éµÄϱê + G.arcs[i][j] = w; //±ßµÄȨֵÖÃΪw + G.arcs[j][i] = G.arcs[i][j]; //ÖõĶԳƱߵÄȨֵΪw + Edge[k].lowcost = w; + Edge[k].Head = v1; + Edge[k].Tail = v2; + }//for +}//CreateUDN + +//----------ðÅÝÅÅÐò------------------- +void Sort(AMGraph G){ + int m = G.arcnum - 2; + int flag = 1; + while((m > 0) && flag == 1){ + flag = 0; + for(int j = 0 ; j <= m ; j++){ + if(Edge[j].lowcost > Edge[j+ 1].lowcost){ + flag = 1; + + VerTexType temp_Head = Edge[j].Head; + Edge[j].Head = Edge[j+ 1].Head; + Edge[j + 1].Head = temp_Head; + + + VerTexType temp_Tail = Edge[j].Tail; + Edge[j].Tail = Edge[j+ 1].Tail; + Edge[j + 1].Tail = temp_Tail; + + ArcType temp_lowcost = Edge[j].lowcost; + Edge[j].lowcost = Edge[j+ 1].lowcost; + Edge[j + 1].lowcost = temp_lowcost; + }//if + }//for + --m; + }//while +}//Sort + +void MiniSpanTree_Kruskal(AMGraph G){ + //ÎÞÏòÍøGÒÔÁÚ½Ó¾ØÕóÐÎʽ´æ´¢£¬¹¹ÔìGµÄ×îСÉú³ÉÊ÷T£¬Êä³öTµÄ¸÷Ìõ±ß + int i , j , v1 , v2 , vs1 , vs2; + Sort(G); //½«Êý×éEdgeÖеÄÔªËØ°´È¨Öµ´ÓСµ½´óÅÅÐò + for(i = 0; i < G.vexnum; ++i) //¸¨ÖúÊý×飬±íʾ¸÷¶¥µã×Ô³ÉÒ»¸öÁ¬Í¨·ÖÁ¿ + Vexset[i] = i; + for(i = 0; i < G.arcnum; ++i){ + //ÒÀ´Î²é¿´ÅźÃÐòµÄÊý×éEdgeÖеıßÊÇ·ñÔÚͬһÁ¬Í¨·ÖÁ¿ÉÏ + v1 =LocateVex(G, Edge[i].Head); //v1Ϊ±ßµÄʼµãHeadµÄϱê + v2 =LocateVex(G, Edge[i].Tail); //v2Ϊ±ßµÄÖÕµãTailµÄϱê + vs1 = Vexset[v1]; //»ñÈ¡±ßEdge[i]µÄʼµãËùÔÚµÄÁ¬Í¨·ÖÁ¿vs1 + vs2 = Vexset[v2]; //»ñÈ¡±ßEdge[i]µÄÖÕµãËùÔÚµÄÁ¬Í¨·ÖÁ¿vs2 + if(vs1 != vs2){ //±ßµÄÁ½¸ö¶¥µã·ÖÊô²»Í¬µÄÁ¬Í¨·ÖÁ¿ + cout << Edge[i].Head << "-->" << Edge[i].Tail << endl; //Êä³ö´Ë±ß + for(j = 0; j < G.vexnum; ++j) //ºÏ²¢vs1ºÍvs2Á½¸ö·ÖÁ¿£¬¼´Á½¸ö¼¯ºÏͳһ±àºÅ + if(Vexset[j] == vs2) Vexset[j] = vs1; //¼¯ºÏ±àºÅΪvs2µÄ¶¼¸ÄΪvs1 + }//if + }//for +}//MiniSpanTree_Kruskal + +void main(){ + cout << "************Ëã·¨6.9¡¡¿Ë³˹¿¨¶ûËã·¨**************" << endl << endl; + AMGraph G; + CreateUDN(G); + + cout < +using namespace std; +#define MAXSIZE 100 +#define OK 1; + +typedef struct{ + int key;//¹Ø¼ü×ÖÓò +}ElemType; + +typedef struct{ + ElemType *R; + int length; +}SSTable; + +int InitList_SSTable(SSTable &L) +{ + L.R=new ElemType[MAXSIZE]; + if (!L.R) + { + cout<<"³õʼ»¯´íÎó"; + return 0; + } + L.length=0; + return OK; +} + +int Insert_SSTable(SSTable &L) +{ + int j=0; + for(int i=0;i=1; --i) + if (ST.R[i].key==key) return i; //´ÓºóÍùǰÕÒ + return 0; + }// Search_Seq + +void Show_End(int result,int testkey) +{ + if(result==0) + cout<<"δÕÒµ½"< +using namespace std; + +//Ëã·¨7.10¡¡¹þÏ£±íµÄ²éÕÒ +//- - - - -¿ª·ÅµØÖ··¨¹þÏ£±íµÄ´æ´¢±íʾ- - - - - +#define m 16 //¹þÏ£±íµÄ±í³¤ +#define NULLKEY 0 //µ¥ÔªÎª¿ÕµÄ±ê¼Ç + +struct HashTable{ + int key; //¹Ø¼ü×ÖÏî +// InfoType otherinfo; //ÆäËûÊý¾ÝÏî +}; + +// Ëã·¨7.10Ϊ¹þÏ£±í²éÕÒµÄËã·¨£¬²ÉÓÃÏßÐÔ̽²â·¨´¦Àí³åÍ»¡£ +// ¡¾Ë㷨ʵÏÖ¡¿ + +int H(int key) +{ + int result; + result=key%13; + return result; +} + +int SearchHash(HashTable HT[],int key){ + //ÔÚ¹þÏ£±íHTÖвéÕҹؼü×ÖΪkeyµÄÔªËØ£¬Èô²éÕҳɹ¦£¬·µ»Ø¹þÏ£±íµÄµ¥Ôª±êºÅ£¬·ñÔò·µ»Ø-1 + int H0=H(key); //¸ù¾Ý¹þÏ£º¯ÊýH£¨key£©¼ÆËã¹þÏ£µØÖ· + int Hi; + if (HT[H0].key==NULLKEY) return -1; //Èôµ¥ÔªH0Ϊ¿Õ£¬ÔòËù²éÔªËØ²»´æÔÚ + else if (HT[H0].key==key) return H0; //Èôµ¥ÔªH0ÖÐÔªËØµÄ¹Ø¼ü×ÖΪkey£¬Ôò²éÕҳɹ¦ + else{ + for(int i=1;i +using namespace std; +#define MAXSIZE 100 +#define OK 1; + +typedef struct{ + int key;//¹Ø¼ü×ÖÓò +}ElemType; + +typedef struct{ + ElemType *R; + int length; +}SSTable; + +int InitList_SSTable(SSTable &L) +{ + L.R=new ElemType[MAXSIZE]; + if (!L.R) + { + cout<<"³õʼ»¯´íÎó"; + return 0; + } + L.length=0; + return OK; +} + +int Insert_SSTable(SSTable &L) +{ + int j=1;//¿Õ³öST.R[0]µÄλÖà + for(int i=1;i +using namespace std; +#define MAXSIZE 100 +#define OK 1; + +typedef struct{ + int key;//¹Ø¼ü×ÖÓò +}ElemType; + +typedef struct{ + ElemType *R; + int length; +}SSTable; + +int InitList_SSTable(SSTable &L) +{ + L.R=new ElemType[MAXSIZE]; + if (!L.R) + { + cout<<"³õʼ»¯´íÎó"; + return 0; + } + L.length=0; + return OK; +} + +int Insert_SSTable(SSTable &L) +{ + int j=1; + for(int i=1;i +using namespace std; +#define ENDFLAG '#' +//char a[10]={'5','6','7','2','1','9','8','10','3','4','#'};//È«¾Ö±äÁ¿ +typedef struct ElemType{ + char key; +}ElemType; + +typedef struct BSTNode{ + ElemType data; //½áµãÊý¾ÝÓò + BSTNode *lchild,*rchild; //×óÓÒº¢×ÓÖ¸Õë +}BSTNode,*BSTree; + + +//Ëã·¨7.4¡¡¶þ²æÅÅÐòÊ÷µÄµÝ¹é²éÕÒ +BSTree SearchBST(BSTree T,char key) { + //ÔÚ¸ùÖ¸ÕëTËùÖ¸¶þ²æÅÅÐòÊ÷ÖÐµÝ¹éµØ²éÕÒij¹Ø¼ü×ÖµÈÓÚkeyµÄÊý¾ÝÔªËØ + //Èô²éÕҳɹ¦£¬Ôò·µ»ØÖ¸Ïò¸ÃÊý¾ÝÔªËØ½áµãµÄÖ¸Õ룬·ñÔò·µ»Ø¿ÕÖ¸Õë + if((!T)|| key==T->data.key) return T; //²éÕÒ½áÊø + else if (keydata.key) return SearchBST(T->lchild,key); //ÔÚ×ó×ÓÊ÷ÖмÌÐø²éÕÒ + else return SearchBST(T->rchild,key); //ÔÚÓÒ×ÓÊ÷ÖмÌÐø²éÕÒ +} // SearchBST + + + +//Ëã·¨7.5¡¡¶þ²æÅÅÐòÊ÷µÄ²åÈë +void InsertBST(BSTree &T,ElemType e ) { + //µ±¶þ²æÅÅÐòÊ÷TÖв»´æÔڹؼü×ÖµÈÓÚe.keyµÄÊý¾ÝÔªËØÊ±£¬Ôò²åÈë¸ÃÔªËØ + if(!T) { //ÕÒµ½²åÈëλÖ㬵ݹé½áÊø + BSTree S = new BSTNode; //Éú³Éнáµã*S + S->data = e; //нáµã*SµÄÊý¾ÝÓòÖÃΪe + S->lchild = S->rchild = NULL; //нáµã*S×÷ΪҶ×Ó½áµã + T =S; //°Ñнáµã*SÁ´½Óµ½ÒÑÕÒµ½µÄ²åÈëλÖà + } + else if (e.key< T->data.key) + InsertBST(T->lchild, e ); //½«*S²åÈë×ó×ÓÊ÷ + else if (e.key> T->data.key) + InsertBST(T->rchild, e); //½«*S²åÈëÓÒ×ÓÊ÷ +}// InsertBST + + + +//Ëã·¨7.6¡¡¶þ²æÅÅÐòÊ÷µÄ´´½¨ +void CreateBST(BSTree &T ) { + //ÒÀ´Î¶ÁÈëÒ»¸ö¹Ø¼ü×ÖΪkeyµÄ½áµã£¬½«´Ë½áµã²åÈë¶þ²æÅÅÐòÊ÷TÖÐ + T=NULL; + ElemType e; + cin>>e.key; //??? + while(e.key!=ENDFLAG){ //ENDFLAGΪ×Ô¶¨Òå³£Á¿£¬×÷ΪÊäÈë½áÊø±êÖ¾ + InsertBST(T, e); //½«´Ë½áµã²åÈë¶þ²æÅÅÐòÊ÷TÖÐ + cin>>e.key; //??? + }//while +}//CreatBST + +void DeleteBST(BSTree &T,char key) { + //´Ó¶þ²æÅÅÐòÊ÷TÖÐɾ³ý¹Ø¼ü×ÖµÈÓÚkeyµÄ½áµã + BSTree p=T;BSTree f=NULL; //³õʼ»¯ + BSTree q; + BSTree s; + /*------------ÏÂÃæµÄwhileÑ­»·´Ó¸ù¿ªÊ¼²éÕҹؼü×ÖµÈÓÚkeyµÄ½áµã*p-------------*/ + while(p){ + if (p->data.key == key) break; //ÕÒµ½¹Ø¼ü×ÖµÈÓÚkeyµÄ½áµã*p£¬½áÊøÑ­»· + f=p; //*fΪ*pµÄË«Ç×½áµã + if (p->data.key> key) p=p->lchild; //ÔÚ*pµÄ×ó×ÓÊ÷ÖмÌÐø²éÕÒ + else p=p->rchild; //ÔÚ*pµÄÓÒ×ÓÊ÷ÖмÌÐø²éÕÒ + }//while +if(!p) return; //ÕÒ²»µ½±»É¾½áµãÔò·µ»Ø +/*¨D¿¼ÂÇÈýÖÖÇé¿öʵÏÖpËùÖ¸×ÓÊ÷ÄÚ²¿µÄ´¦Àí£º*p×óÓÒ×ÓÊ÷¾ù²»¿Õ¡¢ÎÞÓÒ×ÓÊ÷¡¢ÎÞ×ó×ÓÊ÷¨D*/ +if ((p->lchild)&& (p->rchild)) { //±»É¾½áµã*p×óÓÒ×ÓÊ÷¾ù²»¿Õ + q = p; + s = p->lchild; + while (s->rchild) //ÔÚ*pµÄ×ó×ÓÊ÷ÖмÌÐø²éÕÒÆäǰÇý½áµã£¬¼´×îÓÒϽáµã + {q = s; s = s->rchild;} //ÏòÓÒµ½¾¡Í· + p->data = s->data; //sÖ¸Ïò±»É¾½áµãµÄ¡°Ç°Çý¡± + if(q!=p){ + q->rchild = s->lchild; //ÖØ½Ó*qµÄÓÒ×ÓÊ÷ + } + else q->lchild = s->lchild; //ÖØ½Ó*qµÄ×ó×ÓÊ÷ + delete s; + }//if +else{ + if(!p->rchild) { //±»É¾½áµã*pÎÞÓÒ×ÓÊ÷£¬Ö»ÐèÖØ½ÓÆä×ó×ÓÊ÷ + q = p; p = p->lchild; + }//else if + else if(!p->lchild) { //±»É¾½áµã*pÎÞ×ó×ÓÊ÷£¬Ö»ÐèÖØ½ÓÆäÓÒ×ÓÊ÷ + q = p; p = p->rchild; + }//else if + /*¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D½«pËùÖ¸µÄ×ÓÊ÷¹Ò½Óµ½ÆäË«Ç×½áµã*fÏàÓ¦µÄλÖèD¨D¨D¨D¨D¨D¨D¨D*/ + if(!f) T=p; //±»É¾½áµãΪ¸ù½áµã + else if (q==f->lchild) f->lchild = p; //¹Ò½Óµ½*fµÄ×ó×ÓÊ÷λÖà + else f->rchild = p; //¹Ò½Óµ½*fµÄÓÒ×ÓÊ÷λÖà + delete q; + } +}//DeleteBST + +//Ëã·¨ 7.7¡¡¶þ²æÅÅÐòÊ÷µÄɾ³ý + +//ÖÐÐò±éÀú +void InOrderTraverse(BSTree &T) +{ + if(T) + { + InOrderTraverse(T->lchild); + cout<data.key; + InOrderTraverse(T->rchild); + } +} + +void main() +{ + BSTree T; + cout<<"ÇëÊäÈëÈô¸É×Ö·û£¬ÓûسµÇø·Ö£¬ÒÔ#½áÊøÊäÈë"<>key; + BSTree result=SearchBST(T,key); + if(result) + {cout<<"ÕÒµ½×Ö·û"<>key; + DeleteBST(T,key); + cout<<"µ±Ç°ÓÐÐò¶þ²æÊ÷ÖÐÐò±éÀú½á¹ûΪ"< +using namespace std; +#define FALSE 0 +#define TRUE 1 +#define OK 1 +#define m 3 //B-Ê÷µÄ½×£¬ÔÝÉèΪ3 +typedef struct BTNode{ + int keynum; //½áµãÖйؼü×ֵĸöÊý£¬¼´½áµãµÄ´óС + BTNode *parent; //Ö¸ÏòË«Ç×½áµã + int key[m+1]; //¹Ø¼ü×ÖʸÁ¿£¬0ºÅµ¥ÔªÎ´Óà + BTNode *ptr[m+1]; //×ÓÊ÷Ö¸ÕëʸÁ¿ +}BTNode,*BTree; + +//- - - - - B-Ê÷µÄ²éÕÒ½á¹ûÀàÐͶ¨Òå- - - - - +struct Result{ + BTNode *pt; //Ö¸ÏòÕÒµ½µÄ½áµã + int i; //1..m£¬ÔÚ½áµãÖеĹؼü×ÖÐòºÅ + int tag; //1£º²éÕҳɹ¦£¬0£º²éÕÒʧ°Ü +}; + + +int Search(BTree T,int key) +{ + BTree p=T; + int endnum; + if(p) //Ê÷²»Îª¿Õʱ + { + endnum=p->keynum; //»ñµÃÊ×½Úµã°üº¬µÄ¼Ç¼¸öÊý + } + else + { + return 0; //·µ»ØÃ»ÕÒµ½ + } + int i=0; + if(endnum==0) + { + return i; //Ê÷´æÔÚ£¬µ«½öÓÐÒ»¸öΪ¿Õ¸ù½Úµã + } + else if(key>=p->key[endnum])//½Úµã²»Îª¿Õ£¬µ«µ±Ç°Öµ±È×î´óµÄkey»¹´ó + { + i=endnum; + return i; + } + else if(key<=p->key[1]) //½Úµã²»Îª¿Õ£¬µ«µ±Ç°Öµ±È×îСµÄkey»¹Ð¡ + { + return i;} + else + { + for(i=1;ikey[i]<=key && keykey[i+1]) + return i; + } + } +} + +void Insert(BTree &q,int i,int x,BTree &ap) +{//½«x²åÈëq½áµãµÄi+1λÖÃÖÐ + int j; + for(j=m-1;j>i;j--) + { + //½«²åÈëλÖÃÖ®ºóµÄkeyÈ«²¿ºóÒÆÒ»Î» + q->key[j+1]=q->key[j]; + } + for(j=m;j>i;j--) + { + //ÏàÓ¦µØÒ²Òƶ¯ÆäºóptrµÄλÖà + q->ptr[j]=q->ptr[j-1]; + } + q->key[i+1]=x;//²åÈëxµ½¸ÃλÖà + q->ptr[i+1]=ap; + q->keynum++; +} + +void split(BTree &q,int s,BTree &ap) +{ //½«q->key[s+1,..,m], q->ptr[s+1,..,m]ÒÆÈëнáµã*ap×÷ΪÓÒ½áµã + //Ô­½áµã×÷ΪеÄ×ó²à½áµã + //ÖмäÖµ±»±£´æÔÚap[0]->keyÖУ¬µÈ´ýÕÒµ½Ìø×ª»ØInsertBTree£¨£©Ñ°ÕÒµ½µ½ºÏÊʵIJåÈëλÖòåÈë + int i; + ap=new BTNode; + for(i=s+1;i<=m;i++) + { //½«q->key[s+1,..,m]±£´æµ½ap->key[0,..,m-s+1]ÖÐ + //½«q->ptr[s+1,..,m]±£´æµ½ap->ptr[0,..,m-s+1]ÖÐ + ap->key[i-s-1]=q->key[i]; + ap->ptr[i-s-1]=q->ptr[i]; + } + if(ap->ptr[0]) + { + //µ±apÓÐ×ÓÊ÷µÄʱºò + for(i=0;i<=1;i++) + { + //½«apµÄ×ÓÊ÷µÄ¸¸Ç׸ÄΪap×Ô¼º + ap->ptr[i]->parent=ap; + } + } + ap->keynum=(m-s)-1; + ap->parent=q->parent;//½«apµÄ¸¸Ç׸ÄΪqµÄ¸¸Ç× + + q->keynum=q->keynum-(m-s);//ÐÞ¸ÄqµÄ¼Ç¼¸öÊý +} + +void NewRoot(BTree &T,BTree q,int x,BTree &ap)//Éú³Éº¬ÐÅÏ¢£¨T, x, ap£©µÄеĸù½áµã*T£¬Ô­TºÍapΪ×ÓÊ÷Ö¸Õë +{ + BTree newT=new BTNode;//н¨Ò»¸ö½áµã×÷Ϊеĸù + + newT->key[1]=x;//дÈëиùµÄkey[1] + newT->ptr[0]=T;//½«Ô­À´µÄÊ÷¸ù×÷ΪиùµÄ×ó×ÓÊ÷ + newT->ptr[1]=ap;//ap×÷ΪиùµÄÓÒ×ÓÊ÷ + newT->keynum=1; + newT->parent=NULL;//иùµÄ¸¸Ç×Ϊ¿Õ + + ap->parent=newT;//apµÄ¸¸Ç×Ϊиù + T->parent=newT;//TµÄ¸¸Ç×Ϊиù + + T=newT;//Ê÷¸Ä³ÉиùÒýµ¼µÄ +} + +//Ëã·¨7.9¡¡B-Ê÷µÄ²åÈë +int InsertBTree(BTree &T,int K,BTree q,int i){ + int x=K; + BTree ap=NULL; + int finished=FALSE;//x±íʾвåÈëµÄ¹Ø¼ü×Ö£¬apΪһ¸ö¿ÕÖ¸Õë + while(q&&!finished){ + Insert(q,i,x,ap); //½«xºÍap·Ö±ð²åÈëµ½q->key[i+1]ºÍq->ptr[i+1] + if (q->keynumkey[0];// x=q->key[s]; + //½«q->key[s+1..m], q->ptr[s..m]ºÍq->recptr[s+1..m] ÒÆÈëнáµã*ap + q=q->parent; + if(q) + { + i=Search(q,x); + } //ÔÚË«Ç×½áµã*qÖвéÕÒxµÄ²åÈëλÖà + } //else + } //while + if(!finished) //TÊÇ¿ÕÊ÷£¨²ÎÊýq³õֵΪNULL£©»òÕ߸ù½áµãÒÑ·ÖÁÑΪ½áµã*qºÍ*ap + NewRoot(T,q,x,ap); //Éú³Éº¬ÐÅÏ¢£¨T, x, ap£©µÄеĸù½áµã*T£¬Ô­TºÍapΪ×ÓÊ÷Ö¸Õë + return OK; +} //InsertBTree //InsertBTree + +//Ëã·¨7.8¡¡B-Ê÷µÄ²éÕÒ +Result SearchBTree(BTree &T, int key){ + /*ÔÚm½×B-Ê÷TÉϲéÕҹؼü×Ökey£¬·µ»Ø½á¹û(pt,i,tag)¡£Èô²éÕҳɹ¦£¬ÔòÌØÕ÷Öµtag=1£¬Ö¸ÕëptËùÖ¸½áµãÖеÚi¸ö¹Ø¼ü×ÖµÈÓÚkey£»·ñÔòÌØÕ÷Öµtag=0£¬µÈÓÚkeyµÄ¹Ø¼ü×ÖÓ¦²åÈëÔÚÖ¸ÕëptËùÖ¸½áµãÖеÚiºÍµÚi+1¸ö¹Ø¼ü×ÖÖ®¼ä*/ + BTree p=T; + BTree q=NULL; + int found=FALSE; + int i=0; //³õʼ»¯£¬pÖ¸Ïò´ý²é½áµã£¬qÖ¸ÏòpµÄË«Ç× +while(p&&!found){ + i=Search(p,key); + //ÔÚp-£¾key[1..keynum]ÖвéÕÒi£¬Ê¹µÃ£ºp-£¾key[i]£¼=key£¼p-£¾key[i+1] + if(i>0&&p->key[i]==key) + found=TRUE; //ÕÒµ½´ý²é¹Ø¼ü×Ö + else + { + q=p; + p=p->ptr[i]; + } + } + Result result; +if(found) +{ + result.pt=p; + result.i=i; + result.tag=1; + return result; +} //²éÕҳɹ¦ +else +{ + result.pt=q; + result.i=i; + result.tag=0; + return result; +} //²éÕÒ²»³É¹¦£¬·µ»ØKµÄ²åÈëλÖÃÐÅÏ¢ +}//SearchBTree + +void InitialBTree(BTree &T) +{ + //³õʼ»¯Ò»¸ö¿ÕµÄ¸ù + T->keynum=0; + T->parent=NULL; + for(int i=0;iptr[i]=NULL; + } +} + + + +void main() +{ + BTree T=new BTNode; + InitialBTree(T); + //ÏÈÓÃSearchBTree()ÕÒµ½Òª²åÈëµÄλÖ㬵õ½Ò»¸öResult½á¹¹Ìå + //ÔÙÓÃInsertBTree()²åÈëÊý¾Ý + Result result; + int a[11]={45,24,53,90,3,12,50,61,70,100}; + for(int i=0;i<10;i++) + { + result=SearchBTree(T,a[i]); + if(result.tag==0) + { + InsertBTree(T,a[i],result.pt,result.i); + } + } + cout<<"OK"; +} + diff --git a/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第8ç« /8.1.cpp b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第8ç« /8.1.cpp new file mode 100644 index 0000000..e344e5f --- /dev/null +++ b/æ•°æ�®ç»“æž„/严版教æ��/æ•°æ�®ç»“构第2版-书中算法(C语言版)/第8ç« /8.1.cpp @@ -0,0 +1,65 @@ +//Ëã·¨8.1 Ö±½Ó²åÈëÅÅÐò +#include +using namespace std; +#define MAXSIZE 20 //˳Ðò±íµÄ×î´ó³¤¶È +typedef struct +{ + int key; + char *otherinfo; +}ElemType; +//˳Ðò±íµÄ´æ´¢½á¹¹ +typedef struct +{ + ElemType *r; //´æ´¢¿Õ¼äµÄ»ùµØÖ· + int length; //˳Ðò±í³¤¶È +}SqList; //˳Ðò±íÀàÐÍ + +void InsertSort(SqList &L) +{ + //¶Ô˳Ðò±íL×öÖ±½Ó²åÈëÅÅÐò + int i,j; + for(i=2;i<=L.length;++i) + if(L.r[i].key>n; //ÊäÈë¸öÊý + cout<<"ÇëÊäÈë´ýÅÅÐòµÄÊý¾Ý:\n"; + while(n>MAXSIZE) + { + cout<<"¸öÊý³¬¹ýÉÏÏÞ£¬²»Äܳ¬¹ý"<>n; + } + for(i=1;i<=n;i++) + { + cin>>L.r[i].key; + L.length++; + } +} +void show(SqList L) +{ + int i; + for(i=1;i<=L.length;i++) + cout< +using namespace std; +#define MAXSIZE 20 //˳Ðò±íµÄ×î´ó³¤¶È +typedef struct +{ + int key; + char *otherinfo; +}RedType; + +void Create_Sq(RedType *R) +{ + int i,n; + cout<<"ÇëÊäÈëÊý¾Ý¸öÊý£¬²»³¬¹ý"<>n; //ÊäÈë¸öÊý + cout<<"ÇëÊäÈë´ýºÏ²¢µÄÊý¾Ý:\n"; + while(n>MAXSIZE) + { + cout<<"¸öÊý³¬¹ýÉÏÏÞ£¬²»Äܳ¬¹ý"<>n; + } + for(i=0;i>R[i].key; +} + +void Merge(RedType R[],RedType T[],int low,int mid,int high) +{ + //½«ÓÐÐò±íR[low..mid]ºÍR[mid+1..high]¹é²¢ÎªÓÐÐò±íT[low..high] + int i,j,k; + i=low; j=mid+1;k=low; + while(i<=mid&&j<=high) + { + //½«RÖмǼÓÉСµ½´óµØ²¢ÈëTÖÐ + if(R[i].key<=R[j].key) T[k++]=R[i++]; + else T[k++]=R[j++]; + } + while(i<=mid) //½«Ê£ÓàµÄR[low..mid]¸´ÖƵ½TÖÐ + T[k++]=R[i++]; + while(j<=high) //½«Ê£ÓàµÄR[j.high]¸´ÖƵ½TÖÐ + T[k++]=R[j++]; +}//Merge +void show(RedType *T,int low,int high) +{ + int i; + for(i=low;i<=high;i++) + cout<>low>>mid>>high; + Merge(R,T,low,mid,high); + cout<<"ºÏ²¢ºóµÄ½á¹ûΪ£º"< +using namespace std; +#define MAXSIZE 20 //˳Ðò±íµÄ×î´ó³¤¶È +typedef struct +{ + int key; + char *otherinfo; +}RedType; + +typedef struct +{ + RedType *r; + int length; +}SqList; + +void Create_Sq(SqList &L) +{ + int i,n; + cout<<"ÇëÊäÈëÊý¾Ý¸öÊý£¬²»³¬¹ý"<>n; //ÊäÈë¸öÊý + cout<<"ÇëÊäÈë´ýÅÅÐòµÄÊý¾Ý:\n"; + while(n>MAXSIZE) + { + cout<<"¸öÊý³¬¹ýÉÏÏÞ£¬²»Äܳ¬¹ý"<>n; + } + for(i=1;i<=n;i++) + { + cin>>L.r[i].key; + L.length++; + } +} + +//ÓÃËã·¨8.10 ÏàÁÚÁ½¸öÓÐÐò×ÓÐòÁеĹ鲢 +void Merge(RedType R[],RedType T[],int low,int mid,int high) +{ + //½«ÓÐÐò±íR[low..mid]ºÍR[mid+1..high]¹é²¢ÎªÓÐÐò±íT[low..high] + int i,j,k; + i=low; j=mid+1;k=low; + while(i<=mid&&j<=high) + { + //½«RÖмǼÓÉСµ½´óµØ²¢ÈëTÖÐ + if(R[i].key<=R[j].key) T[k++]=R[i++]; + else T[k++]=R[j++]; + } + while(i<=mid) //½«Ê£ÓàµÄR[low..mid]¸´ÖƵ½TÖÐ + T[k++]=R[i++]; + while(j<=high) //½«Ê£ÓàµÄR[j.high]¸´ÖƵ½TÖÐ + T[k++]=R[j++]; +}//Merge + +void MSort(RedType R[],RedType T[],int low,int high) +{ + //R[low..high]¹é²¢ÅÅÐòºó·ÅÈëT[low..high]ÖÐ + int mid; + RedType *S=new RedType[MAXSIZE]; + if(low==high) T[low]=R[low]; + else + { + mid=(low+high)/2; //½«µ±Ç°ÐòÁÐÒ»·ÖΪ¶þ£¬Çó³ö·ÖÁѵãmid + MSort(R,S,low,mid); //¶Ô×ÓÐòÁÐR[low..mid] µÝ¹é¹é²¢ÅÅÐò£¬½á¹û·ÅÈëS[low..mid] + MSort(R,S,mid+1,high); //¶Ô×ÓÐòÁÐR[mid+1..high] µÝ¹é¹é²¢ÅÅÐò£¬½á¹û·ÅÈëS[mid+1..high] + Merge(S,T,low,mid,high); //½«S[low..mid]ºÍS [mid+1..high]¹é²¢µ½T[low..high] + }//else +}// MSort + +void MergeSort(SqList &L) +{ + //¶Ô˳Ðò±íL×ö¹é²¢ÅÅÐò + MSort(L.r,L.r,1,L.length); +}//MergeSort +void show(SqList L) +{ + int i; + for(i=1;i<=L.length;i++) + cout< +#include +#include +#include +#define MAXNUM_KEY 8 //¹Ø¼ü×ÖÏîÊýµÄ×î´óÖµ +#define RADIX 10 //¹Ø¼ü×Ö»ùÊý£¬´ËʱÊÇÊ®½øÖÆÕûÊýµÄ»ùÊý +#define MAX_SPACE 10000 +typedef char KeysType; //¶¨Ò幨¼ü×ÖÀàÐÍΪ×Ö·ûÐÍ +typedef int InfoType; //¶¨ÒåÆäËüÊý¾ÝÏîµÄÀàÐÍ +typedef struct +{ + KeysType keys[MAXNUM_KEY]; //¹Ø¼ü×Ö + InfoType otheritems; //ÆäËûÊý¾ÝÏî + int next; +}SLCell; //¾²Ì¬Á´±íµÄ½áµãÀàÐÍ +typedef struct +{ + SLCell r[MAX_SPACE]; //¾²Ì¬Á´±íµÄ¿ÉÀûÓÿռ䣬r[0]Ϊͷ½áµã + int keynum; //¼Ç¼µÄµ±Ç°¹Ø¼ü×Ö¸öÊý + int recnum; //¾²Ì¬Á´±íµÄµ±Ç°³¤¶È +}SLList; //¾²Ì¬Á´±íÀàÐÍ +typedef int ArrType[RADIX]; //Ö¸ÕëÊý×éÀàÐÍ + +void InitList(SLList *L) +{ + //³õʼ»¯¾²Ì¬Á´±íL£¨°ÑÊý×éDÖеÄÊý¾Ý´æÓÚLÖУ© + char c[MAXNUM_KEY],c1[MAXNUM_KEY]; + int i,j,n,max; //maxΪ¹Ø¼ü×ÖµÄ×î´óÖµ + max=-10000; + cout<<"ÇëÊäÈëÊý¾Ý¸öÊý£¬²»³¬¹ý"<>n; + while(n>MAX_SPACE) + { + cout<<"ÄúÊäÈëµÄ¸öÊý³¬¹ýÉÏÏÞ£¬ÇëÖØÐÂÊäÈ룬²»³¬¹ý"<>n; + } + int *D=new int[n]; + cout<<"ÇëÊäÈë"<>D[i]; + if(max=0;j--) + cout< +using namespace std; +#define MAXSIZE 20 //˳Ðò±íµÄ×î´ó³¤¶È +typedef struct +{ + int key; + char *otherinfo; +}ElemType; +//˳Ðò±íµÄ´æ´¢½á¹¹ +typedef struct +{ + ElemType *r; //´æ´¢¿Õ¼äµÄ»ùµØÖ· + int length; //˳Ðò±í³¤¶È +}SqList; //˳Ðò±í + +void BInsertSort(SqList &L){ + //¶Ô˳Ðò±íL×öÕÛ°ë²åÈëÅÅÐò + int i,j,low,high,m; + for(i=2;i<=L.length;++i) + { + L.r[0]=L.r[i]; //½«´ý²åÈëµÄ¼Ç¼ÔÝ´æµ½¼àÊÓÉÚÖÐ + low=1; high=i-1; //ÖòéÕÒÇø¼ä³õÖµ + while(low<=high) + { //ÔÚr[low..high]ÖÐÕÛ°ë²éÕÒ²åÈëµÄλÖà + m=(low+high)/2; //ÕÛ°ë + if(L.r[0].key=high+1;--j) L.r[j+1]=L.r[j]; //¼Ç¼ºóÒÆ + L.r[high+1]=L.r[0]; //½«r[0]¼´Ô­r[i]£¬²åÈëµ½ÕýȷλÖà + } //for +} //BInsertSort + +void Create_Sq(SqList &L) +{ + int i,n; + cout<<"ÇëÊäÈëÊý¾Ý¸öÊý£¬²»³¬¹ý"<>n; //ÊäÈë¸öÊý + cout<<"ÇëÊäÈë´ýÅÅÐòµÄÊý¾Ý£º\n"; + while(n>MAXSIZE) + { + cout<<"¸öÊý³¬¹ýÉÏÏÞ£¬²»Äܳ¬¹ý"<>n; + } + for(i=1;i<=n;i++) + { + cin>>L.r[i].key; + L.length++; + } +} + +void show(SqList L) +{ + int i; + for(i=1;i<=L.length;i++) + cout< +using namespace std; +#define MAXSIZE 20 //˳Ðò±íµÄ×î´ó³¤¶È +typedef struct +{ + int key; + char *otherinfo; +}ElemType; +//˳Ðò±íµÄ´æ´¢½á¹¹ +typedef struct +{ + ElemType *r; //´æ´¢¿Õ¼äµÄ»ùµØÖ· + int length; //˳Ðò±í³¤¶È +}SqList; //˳Ðò±íÀàÐÍ + +void ShellInsert(SqList &L,int dk) +{ + //¶Ô˳Ðò±íL×öÒ»ÌËÔöÁ¿ÊÇdkµÄÏ£¶û²åÈëÅÅÐò + int i,j; + for(i=dk+1;i<=L.length;++i) + if(L.r[i].key0&& L.r[0].key>n; //ÊäÈë¸öÊý + cout<<"ÇëÊäÈë´ýÅÅÐòµÄÊý¾Ý£º\n"; + while(n>MAXSIZE) + { + cout<<"¸öÊý³¬¹ýÉÏÏÞ£¬²»Äܳ¬¹ý"<>n; + } + for(i=1;i<=n;i++) + { + cin>>L.r[i].key; + L.length++; + } +} + +void show(SqList L) +{ + int i; + for(i=1;i<=L.length;i++) + cout<>t; + for(i=0;i>dt[i]; + } + ShellSort(L,dt,t); + cout<<"ÅÅÐòºóµÄ½á¹ûΪ£º"< +using namespace std; +#define MAXSIZE 20 //˳Ðò±íµÄ×î´ó³¤¶È +typedef struct +{ + int key; + char *otherinfo; +}ElemType; +//˳Ðò±íµÄ´æ´¢½á¹¹ +typedef struct +{ + ElemType *r; //´æ´¢¿Õ¼äµÄ»ùµØÖ· + int length; //˳Ðò±í³¤¶È +}SqList; //˳Ðò±íÀàÐÍ + +void BubbleSort(SqList &L) +{ + //¶Ô˳Ðò±íL×öðÅÝÅÅÐò + int m,j,flag; + ElemType t; + m=L.length-1; flag=1; //flagÓÃÀ´±ê¼ÇijһÌËÅÅÐòÊÇ·ñ·¢Éú½»»» + while((m>0)&&(flag==1)) + { + flag=0; //flagÖÃΪ0£¬Èç¹û±¾ÌËÅÅÐòûÓз¢Éú½»»»£¬Ôò²»»áÖ´ÐÐÏÂÒ»ÌËÅÅÐò + for(j=1;j<=m;j++) + if(L.r[j].key>L.r[j+1].key) + { + flag=1; //flagÖÃΪ1£¬±íʾ±¾ÌËÅÅÐò·¢ÉúÁ˽»»» + t=L.r[j];L.r[j]=L.r[j+1];L.r[j+1]=t; //½»»»Ç°ºóÁ½¸ö¼Ç¼ + } //if + --m; + } //while +} //BubbleSort + +void Create_Sq(SqList &L) +{ + int i,n; + cout<<"ÇëÊäÈëÊý¾Ý¸öÊý£¬²»³¬¹ý"<>n; //ÊäÈë¸öÊý + cout<<"ÇëÊäÈë´ýÅÅÐòµÄÊý¾Ý:\n"; + while(n>MAXSIZE) + { + cout<<"¸öÊý³¬¹ýÉÏÏÞ£¬²»Äܳ¬¹ý"<>n; + } + for(i=1;i<=n;i++) + { + cin>>L.r[i].key; + L.length++; + } +} + +void show(SqList L) +{ + int i; + for(i=1;i<=L.length;i++) + cout< +using namespace std; +#define MAXSIZE 20 //˳Ðò±íµÄ×î´ó³¤¶È +typedef struct +{ + int key; + char *otherinfo; +}ElemType; +//˳Ðò±íµÄ´æ´¢½á¹¹ +typedef struct +{ + ElemType *r; //´æ´¢¿Õ¼äµÄ»ùµØÖ· + int length; //˳Ðò±í³¤¶È +}SqList; //˳Ðò±íÀàÐÍ + + +int Partition(SqList &L,int low,int high) +{ + //¶Ô˳Ðò±íLÖеÄ×Ó±ír[low..high]½øÐÐÒ»ÌËÅÅÐò£¬·µ»ØÊàÖáλÖà + int pivotkey; + L.r[0]=L.r[low]; //ÓÃ×Ó±íµÄµÚÒ»¸ö¼Ç¼×öÊàÖá¼Ç¼ + pivotkey=L.r[low].key; //ÊàÖá¼Ç¼¹Ø¼ü×Ö±£´æÔÚpivotkeyÖÐ + while(low=pivotkey) --high; + L.r[low]=L.r[high]; //½«±ÈÊàÖá¼Ç¼СµÄ¼ÇÂ¼ÒÆµ½µÍ¶Ë + while(low>n; //ÊäÈë¸öÊý + cout<<"ÇëÊäÈë´ýÅÅÐòµÄÊý¾Ý:\n"; + while(n>MAXSIZE) + { + cout<<"¸öÊý³¬¹ýÉÏÏÞ£¬²»Äܳ¬¹ý"<>n; + } + for(i=1;i<=n;i++) + { + cin>>L.r[i].key; + L.length++; + } +} + + +void show(SqList L) +{ + int i; + for(i=1;i<=L.length;i++) + cout< +using namespace std; +#define MAXSIZE 20 //˳Ðò±íµÄ×î´ó³¤¶È +typedef struct +{ + int key; + char *otherinfo; +}ElemType; +//˳Ðò±íµÄ´æ´¢½á¹¹ +typedef struct +{ + ElemType *r; //´æ´¢¿Õ¼äµÄ»ùµØÖ· + int length; //˳Ðò±í³¤¶È +}SqList; //˳Ðò±íÀàÐÍ + +void SelectSort(SqList &L) +{ + //¶Ô˳Ðò±íL×ö¼òµ¥Ñ¡ÔñÅÅÐò + int i,j,k; + ElemType t; + for(i=1;i>n; //ÊäÈë¸öÊý + cout<<"ÇëÊäÈë´ýÅÅÐòµÄÊý¾Ý:\n"; + while(n>MAXSIZE) + { + cout<<"¸öÊý³¬¹ýÉÏÏÞ£¬²»Äܳ¬¹ý"<>n; + } + for(i=1;i<=n;i++) + { + cin>>L.r[i].key; + L.length++; + } +} + +void show(SqList L) +{ + int i; + for(i=1;i<=L.length;i++) + cout< +using namespace std; +#define MAXSIZE 20 //˳Ðò±íµÄ×î´ó³¤¶È +typedef struct +{ + int key; + char *otherinfo; +}ElemType; +//˳Ðò±íµÄ´æ´¢½á¹¹ +typedef struct +{ + ElemType *r; //´æ´¢¿Õ¼äµÄ»ùµØÖ· + int length; //˳Ðò±í³¤¶È +}SqList; //˳Ðò±íÀàÐÍ + +void HeapAdjust(SqList &L,int s,int m) +{ + //¼ÙÉèr[s+1..m]ÒѾ­ÊǶѣ¬½«r[s..m]µ÷ÕûΪÒÔr[s]Ϊ¸ùµÄ´ó¸ù¶Ñ + ElemType rc; + int j; + rc=L.r[s]; + for(j=2*s;j<=m;j*=2) + { //ÑØkey½Ï´óµÄº¢×Ó½áµãÏòÏÂɸѡ + if(j=L.r[j].key) break; //rcÓ¦²åÈëÔÚλÖÃsÉÏ + L.r[s]=L.r[j]; s=j; + } + L.r[s]=rc; //²åÈë +} //HeapAdjust + +void Create_Sq(SqList &L) +{ + int i,n; + cout<<"ÇëÊäÈëÊý¾Ý¸öÊý£¬²»³¬¹ý"<>n; //ÊäÈë¸öÊý + cout<<"ÇëÊäÈë´ýµ÷ÕûµÄÊý¾Ý:\n"; + while(n>MAXSIZE) + { + cout<<"¸öÊý³¬¹ýÉÏÏÞ£¬²»Äܳ¬¹ý"<>n; + } + for(i=1;i<=n;i++) + { + cin>>L.r[i].key; + L.length++; + } +} +void show(SqList L) +{ + int i; + for(i=1;i<=L.length;i++) + cout< +using namespace std; +#define MAXSIZE 20 //˳Ðò±íµÄ×î´ó³¤¶È +typedef struct +{ + int key; + char *otherinfo; +}ElemType; +//˳Ðò±íµÄ´æ´¢½á¹¹ +typedef struct +{ + ElemType *r; //´æ´¢¿Õ¼äµÄ»ùµØÖ· + int length; //˳Ðò±í³¤¶È +}SqList; //˳Ðò±íÀàÐÍ + +//ÓÃËã·¨8.7 ɸѡ·¨µ÷Õû¶Ñ +void HeapAdjust(SqList &L,int s,int m) +{ + //¼ÙÉèr[s+1..m]ÒѾ­ÊǶѣ¬½«r[s..m]µ÷ÕûΪÒÔr[s]Ϊ¸ùµÄ´ó¸ù¶Ñ + ElemType rc; + int j; + rc=L.r[s]; + for(j=2*s;j<=m;j*=2) + { //ÑØkey½Ï´óµÄº¢×Ó½áµãÏòÏÂɸѡ + if(j=L.r[j].key) break; //rcÓ¦²åÈëÔÚλÖÃsÉÏ + L.r[s]=L.r[j]; s=j; + } + L.r[s]=rc; //²åÈë +} //HeapAdjust + +void Create_Sq(SqList &L) +{ + int i,n; + cout<<"ÇëÊäÈëÊý¾Ý¸öÊý£¬²»³¬¹ý"<>n; //ÊäÈë¸öÊý + cout<<"ÇëÊäÈëÊý¾Ý:\n"; + while(n>MAXSIZE) + { + cout<<"¸öÊý³¬¹ýÉÏÏÞ£¬²»Äܳ¬¹ý"<>n; + } + for(i=1;i<=n;i++) + { + cin>>L.r[i].key; + L.length++; + } +} + +void CreatHeap(SqList &L) +{ + //°ÑÎÞÐòÐòÁÐL.r[1..n]½¨³É´ó¸ù¶Ñ + int i,n; + n=L.length; + for(i=n/2;i>0;--i) //·´¸´µ÷ÓÃHeapAdjust + HeapAdjust(L,i,n); +} //CreatHeap +void show(SqList L) +{ + int i; + for(i=1;i<=L.length;i++) + cout< +using namespace std; +#define MAXSIZE 20 //˳Ðò±íµÄ×î´ó³¤¶È +typedef struct +{ + int key; + char *otherinfo; +}ElemType; +//˳Ðò±íµÄ´æ´¢½á¹¹ +typedef struct +{ + ElemType *r; //´æ´¢¿Õ¼äµÄ»ùµØÖ· + int length; //˳Ðò±í³¤¶È +}SqList; //˳Ðò±íÀàÐÍ + +//ÓÃËã·¨8.7 ɸѡ·¨µ÷Õû¶Ñ +void HeapAdjust(SqList &L,int s,int m) +{ + //¼ÙÉèr[s+1..m]ÒѾ­ÊǶѣ¬½«r[s..m]µ÷ÕûΪÒÔr[s]Ϊ¸ùµÄ´ó¸ù¶Ñ + ElemType rc; + int j; + rc=L.r[s]; + for(j=2*s;j<=m;j*=2) + { //ÑØkey½Ï´óµÄº¢×Ó½áµãÏòÏÂɸѡ + if(j=L.r[j].key) break; //rcÓ¦²åÈëÔÚλÖÃsÉÏ + L.r[s]=L.r[j]; s=j; + } + L.r[s]=rc; //²åÈë +} + //HeapAdjust +void Create_Sq(SqList &L) +{ + int i,n; + cout<<"ÇëÊäÈëÊý¾Ý¸öÊý£¬²»³¬¹ý"<>n; //ÊäÈë¸öÊý + cout<<"ÇëÊäÈë´ýÅÅÐòµÄÊý¾Ý:\n"; + while(n>MAXSIZE) + { + cout<<"¸öÊý³¬¹ýÉÏÏÞ£¬²»Äܳ¬¹ý"<>n; + } + for(i=1;i<=n;i++) + { + cin>>L.r[i].key; + L.length++; + } +} + +//ÓÃËã·¨8.8 ½¨³õ¶Ñ +void CreatHeap(SqList &L) +{ + //°ÑÎÞÐòÐòÁÐL.r[1..n]½¨³É´ó¸ù¶Ñ + int i,n; + n=L.length; + for(i=n/2;i>0;--i) //·´¸´µ÷ÓÃHeapAdjust + HeapAdjust(L,i,n); +} //CreatHeap + +void HeapSort(SqList &L) +{ + //¶Ô˳Ðò±íL½øÐжÑÅÅÐò + int i; + ElemType x; + CreatHeap(L); //°ÑÎÞÐòÐòÁÐL.r[1..L.length]½¨³É´ó¸ù¶Ñ + for(i=L.length;i>1;--i) + { + x=L.r[1]; //½«¶Ñ¶¥¼Ç¼ºÍµ±Ç°Î´¾­ÅÅÐò×ÓÐòÁÐL.r[1..i]ÖÐ×îºóÒ»¸ö¼Ç¼»¥»» + L.r[1]=L.r[i]; + L.r[i]=x; + HeapAdjust(L,1,i-1); //½«L.r[1..i-1]ÖØÐµ÷ÕûΪ´ó¸ù¶Ñ + }//for +}//HeapSort +void show(SqList L) +{ + int i; + for(i=1;i<=L.length;i++) + cout<