C 線性表鏈式儲存結構

2021-07-08 19:42:58 字數 1988 閱讀 1021

本來想要在頭結點的資料域存放鍊錶長度,結果後來這樣反而出了一些麻煩

#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。鍊錶中每個...