//該程式實現了線性表的鏈式儲存結構之單鏈表和各項操作
#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...