資料結構單鏈表的各種操作C 實現

2021-07-14 01:32:00 字數 2467 閱讀 7867

//該程式實現了線性表的鏈式儲存結構之單鏈表和各項操作

#include

#include

using

namespace

std;

//****線性表和一些基礎的定義*****

#define elemtype int /*表中資料元素型別*/

typedef

struct nodelnode,* linklist;

#define ok 1

#define error 0

#define true 1

#define false 0

typedef

int status; //status為函式型別,其值是函式結果狀態**,如ok等

//獲得單鏈表的長度

status getlen(linklist l)

return len;

}//獲得表中第i個位置的元素,以e返回,獲取到時返回ok,獲取不到返回error

status getelem(const linklist l, int i, elemtype &e)

}*/ p = l->next;

count = 1;

while (p&&countnext;

++count;

}if (!p||count > i)

return error;

e = p->data;

return ok;

}//向線性表中第i個位置插入乙個元素e,即在第i個位置之前插入元素,插入成功則返回ok,插入失敗返回error

status insertelem(linklist l, int i, elemtype &e)

if (!p|| count > i)

return error;

s = new lnode;

s->data = e;

s->next =p->next ;

p->next = s;

return ok;

}//從線性表中第i個位置刪除乙個元素(即刪除第i個位置之前的元素),刪除成功則返回ok,否則返回error,刪除的元素用e返回

status deleteelem(linklist l, int i,elemtype& e)

if (!(p->next) || count > i)

return error;

q = p->next;

p->next = q->next;

e = q->data;

delete q;

return ok;

}//用乙個陣列初始化乙個單鏈表,頭插法

void createlisthead(elemtype array,int n, linklist l)

}//用乙個陣列初始化乙個單鏈表,尾插法

void createlisttail(elemtype array, int n, linklist l)

}//整表刪除

status clearlist(linklist l)

if (!p)

return error;

l->next = null;

return ok;

}status printlist(linklist l)

if (!p)

return error;

return ok;

}int main() ;

int e = 3;

int b,c;

linklist l=new lnode;

l->next = null;//初始化頭結點

createlisthead(a,2,l);//測試頭插法

printlist(l);

cout

<< "*********"

<< endl;

insertelem(l,2,e);//測試插入元素

getelem(l,2,c);//測試獲取元素

cout

<< "the element got is"

<< c << endl;

printlist(l);

cout

<< "*********"

<< endl;

deleteelem(l,e,b);//測試刪除元素

cout

<< "b="

<< b<< "*********"

<< endl;

clearlist(l);//測試清空表

cout

<< "*********"

<< endl;

createlisttail(a,2,l);//測試尾插法

printlist(l);

delete l;

system("pause");

return

0;}

資料結構單鏈表的各種操作

標頭檔案stu.h jeasn168 include include define maxs 50 typedef struct stu 輸出stu void dispstu const stu s 比較stu型別 int isequal const stu a,const stu b 單鏈表lin...

資料結構 單鏈表的各種操作08

鍊錶 1.建立鍊錶 2.列印鍊錶 void printlist tylist m phead printf n n 3.銷毀鍊錶 4.按值插入元素,在某一元素前 5.按值刪除元素 6.鍊錶逆置 void reverselist tylist m phead tylist m ppre m phead...

資料結構 單鏈表基本操作 C 實現

主體使用結構體 類 模板進行實現。1.linklist.h pragma once include using namespace std template class t struct node 結點結構 node t e,node next null template class t class...