稀疏矩陣相加(十字鍊錶儲存)

2021-05-25 12:06:40 字數 2289 閱讀 1037

標頭檔案

// linklist.h: inte***ce for the linklist class.

////

#if !defined(afx_linklist_h__0f0cca3e_d836_4bb4_9030_b548558fc57e__included_)

#define afx_linklist_h__0f0cca3e_d836_4bb4_9030_b548558fc57e__included_

#if _msc_ver > 1000

#pragma once

#endif // _msc_ver > 1000

#include

using namespace std;

const int smax=20;

struct link

uval;

};class linklist 

;#endif // !defined(afx_linklist_h__0f0cca3e_d836_4bb4_9030_b548558fc57e__included_)

函式定義

// linklist.cpp: implementation of the linklist class.

////

#include "linklist.h"

//// construction/destruction

//linklist::linklist()

else

l=new link;

l->i=m;

l->j=n;

cp[0]=l;

for (i=1;i<=s;i++)

cp[s]->uval.next=l;

cout<<"輸入三元組表。"<>i>>j>>v;

p=new link;

p->i=i;

p->j=j;

p->uval.v=v;

q=cp[i];

while((q->rptr!=cp[i])&&(q->rptr->jrptr;

p->rptr=q->rptr;

q->rptr=p;

q=cp[j];

while((q->cptr!=cp[j])&&(q->cptr->icptr;

p->cptr=q->cptr;

q->cptr=p;} }

void linklist::delete(linklist q)

delete q;

}void linklist::deal(linklist q,linklist p)

pn->cptr=ptr->cptr;

if(q==q->rptr)

ptr->cptr=pn->cptr;

pn->cptr=ptr;

qtr=qtr->rptr;

}else

pn->cptr=qtr->cptr;

qn->rptr=qtr->rptr;

delete qtr;

qtr=qn->rptr;

delete ptr;

}else

}else

ptr->cptr=pn->cptr;

pn->cptr=ptr;

qn=qn->rptr;

}else

if(qtr->j==ptr->j)

pn->cptr=qtr->cptr;

qn->rptr=qtr->rptr;

delete qtr;

qtr=qn->rptr;

delete ptr;

}else

}else

ptr->cptr=pn->cptr;

pn->cptr=ptr;

qn=ptr;}}

}}}q=q->uval.next;

p=p->uval.next;

}p.delete(p);

}void linklist::print1()

p=p->uval.next;

}for(i=0;i=10))

cout<<" "p=p->uval.next;

}for(i=0;i=10))

cout<<" "else

}主函式

#include "linklist.h"

#include

using namespace std;

int main()

else

return 0;

}

十字鍊錶 稀疏矩陣

include includetypedef struct olnode olnode,olink typedef struct 行和列煉表頭指標向量基址,由creatsmatrix ol 分配 crosslist 初始化m crosslist型別的變數必須初始化,否則建立 複製矩陣將出錯 bool...

矩陣相加(十字鍊錶)

描述 輸入兩個稀疏矩陣a和b,用十字鍊錶實現a a b,輸出它們相加的結果。輸入第一行輸入四個正整數,分別是兩個矩陣的行m 列n 第乙個矩陣的非零元素的個數t1和第二個矩陣的非零元素的個數t2,接下來的t1 t2行是三元組,分別是第乙個矩陣的資料和第二個矩陣的資料,三元組的第乙個元素表示行,第二個元...

稀疏矩陣的建立 十字鍊錶

一 概念 既然要用鍊錶節點來模擬矩陣中的非零元素,肯定需要如下5個元素 row,col,val,down,right 其中 row 矩陣中的行。col 矩陣中的列。val 矩陣中的值。right 指向右側的乙個非零元素。down 指向下側的乙個非零元素。現在我們知道單個節點該如何表示了,那麼矩陣中同...