本來想要在頭結點的資料域存放鍊錶長度,結果後來這樣反而出了一些麻煩
#include using namespace std;
#define maxsize 123
typedef int elemtype;//為複雜的宣告定義簡單的別名
struct node
;node::node(elemtype elem)//節點的建構函式裡對資料域賦值,不用在新建節點之後再賦值
class linklist
;bool linklist::destroylinklist()
delete at_head;
return true;
}void* linklist::gethead()
linklist::linklist()
elemtype linklist::getlistlength()
bool linklist::insertbetween(int i,elemtype elem)
if(!p||j>i-1)//執行完上面的迴圈,p要麼指向第i-1個結點,要麼指向鍊錶最後乙個節點
return false;
node *pnode=new node(elem);
pnode->next=p->next;
p->next=pnode;
++(at_head->date);
return true;
}bool linklist::insertafterhead(elemtype elem)//這個就不是很必要了,已經修改上面的插入演算法可以插入在頭結點後面
bool linklist::getelem(int i,elemtype &elem)
//p指向最後乙個節點
if(p==null||j>i)//需要》i嗎?
return false;
elem=p->date;
return true;
}bool linklist::deletenode(int i,elemtype &elem)
if(!p->next||j>i-1)//不明白為什麼要第二個條件
return false;
p2=p->next;
p->next=p2->next;
delete p2;
--(at_head->date);
return true;
}void mergelist(linklist &list1,linklist &list2,linklist &list3)//函式內部鍊錶長度發生了變化,要恢復正確數值
else
}p1?p3->next=p1:p3->next=p2;
((node*)list3.gethead())->date=((node*)list1.gethead())->date+((node*)list2.gethead())->date;
((node*)list1.gethead())->next=null;
((node*)list2.gethead())->next=null;
}linklist::~linklist()
void main()
for(int i=19;i>0;----i)
elemtype testvalue;
elemtype test;
for(int i=1;i<=list1.getlistlength();++i)
cout<<"\n";
for(int i=1;i<=list2.getlistlength();++i)
cout<<"\n";
mergelist(list1,list2,list3);
for(int i=1;i<=list3.getlistlength();++i)
list1.destroylinklist();
list2.destroylinklist();
list3.destroylinklist();
}
線性表鏈式儲存結構
include include 線性表鏈式儲存結構 typedef struct lnodelnode,linklist int initlist linklist l 初始化 int endinsert linklist l,int e p next s return 1 末尾插入元素 int g...
線性表鏈式儲存結構
為了表示每個資料元素ai與其直接後繼資料元素ai 1之間的邏輯關係,對資料元素ai來說,除了儲存其本身的資訊之外,還需儲存乙個指示其直接後繼的資訊 即直接後繼的儲存位置 我們把儲存資料元素資訊的域稱為資料域,把儲存直接後繼位置的域稱為指標域。指標域中儲存的資訊稱做指標或鏈。這兩部分資訊組成資料元素a...
線性表 鏈式儲存結構
1 線性表的鏈式儲存結構 每個元素多用乙個位置來存放指向下乙個元素位置的指標,依次類推,可以找到所有的元素。鏈式儲存中,除了要儲存資料本身外,還要儲存它的後繼元素的儲存位址 指標 資料域 儲存資料資訊的域 指標域 儲存直接後繼位置的域。這兩部分資訊組成資料元素稱之為儲存映像,節點node。鍊錶中每個...