データ構造【線形テーブル(二)チェーンテーブル】項目の単一チェーンテーブル:接続
1532 ワード
/**データ構造【線形表(二)チェーン表】プロジェクトの単一チェーン表:接続*Copyright(c)2015煙台大学コンピュータと制御工学院*All right reserved.*ファイル名:danlianbiao.cpp*タイトル:データ構造【線形表(二)チェーン表】項目の単一チェーン表:逆置き、接続と増分判断*分類:単一チェーン表:逆置き、接続と増分判断*writer:羅海員*date:2015年10月04日*バージョン:V 1.0.1*オペレーティングシステム:XP*実行環境:VC 6.0*問題の説明:L 1とL 2がそれぞれ2つの単一チェーンテーブルのヘッダノードを指し、その長さがそれぞれm、nであることが知られているので、L 2をL 1の後ろに接続するアルゴリズムを設計してください.このアルゴリズムを実現し,テストを完了し,このアルゴリズムの複雑さを解析した. 1. 単一チェーンテーブルのストレージ構造を定義し、ヘッダプラグインとテールプラグインで単一チェーンテーブルを作成し、作成後の結果を表示します. 2.複雑度の要求、アルゴリズムを設計して専門の関数でアルゴリズムを実現します; 3.理論と実践を結びつけて*入力説明:*アルゴリズムライブラリは2つのファイルを含む:ヘッダファイル:linklist.h、シーケンステーブルデータ構造を定義するコード、マクロ定義、アルゴリズムを実現する関数の宣言を含む.(前に示す)ソースファイル:2.ソースファイル:linklist.cppは、各種アルゴリズムを実現する関数の定義*プログラム出力を含む:(以下の図)
*/
*/
<span style="font-size:14px;">// : O(m), L1 , L1 , L2 n 。
#include <stdio.h>
#include <malloc.h>
#include "linklist.h"
void Link(LinkList *&L1, LinkList *&L2)
{
LinkList *p = L1;
while(p->next != NULL) // L1
p = p->next;
p->next = L2->next; // L2 L1
free(L2); // L2
}
int main()
{
LinkList *A, *B;
int i;
ElemType a[]= {1,3,2,9};
ElemType b[]= {0,4,7,6,5,8};
InitList(A);
for(i=3; i>=0; i--)
ListInsert(A, 1, a[i]);
InitList(B);
for(i=5; i>=0; i--)
ListInsert(B, 1, b[i]);
Link(A, B);
printf("A:");
DispList(A);
DestroyList(A);
return 0;
}
</span>