資料結構 線性表 鍊錶實現

2021-08-09 08:53:38 字數 2085 閱讀 3900

#include

#include

#define ok 1

#define error 0

typedef int status;   //status是函式的型別,其值是函式結果狀態ok等 

typedef int elemtype; // elemtype型別根據實際情況而定這裡設為int型 

typedef struct lnode    //定義單鏈表結點型別 

lnode,*linklist;

/************初始化******************************/   

status initlist()  

l->next = null;                  //將next設定為null,初始為空單鏈表   

// return l;  

}  /*******尾插法隨機產生n個元素的建立帶表頭結點的單鏈表l*********/

status createlist(linklist *l,int n)

r->next = null;                       //表尾指標置空 

} /*******頭插法隨機產生n個元素的建立帶表頭結點的單鏈表l*********/  

status createlisthead(linklist *l, int n)  

}  /*******************第i個位置前插入(頭插法)************************************/

status createlist1(linklist *l,int i,elemtype e)

if(!p||j>i-1)

return error; 

s=(linklist)malloc(sizeof(lnode));  //建立頭結點

s->data=e;

s->next=p->next;

p->next=s; 

return ok;

} /**********返回l中第i個元素的值(按序號查詢結點值)******************/

status getelem(linklist l,int i) //第i個元素存在時賦值給e並返回ok 否則返回error 

e=p->data;   //e區第i個元素的值

printf("%d",e);

//return 0; 

}/************按值查詢表結點*********************/

status *getelem1(linklist l,elemtype e)   //查詢l中data值等於e的結點指標,否則返回null 

printf("%d",p);

return p;

}/******************刪除*********************/

status listdelete(linklist *l,int i,elemtype *e)    //刪除第i個元素 ,由e返回 

if (!(p->next)||j>i)   //刪除位置不合理 

return error;           

q = p->next;  

p->next = q->next;            //將q的後繼賦值給p的後繼  

*e = q->data;               // 將q結點中的資料給e  

free(q);                    // 讓系統**此結點,釋放記憶體  

return ok;  

}/**************獲取表長***************/ 

status listlength(linklist l)  

return i;  

printf("表長為:%d",i);

}  /******************列印檢視****************/

status display(linklist l)   

printf("\n");

return ok;

} int main()

}return 0;

}

資料結構 線性表 鍊錶實現

ifndef chain h define chain h include using namespace std vs平台下自己定義了nullptr null 0 但是在gcc下沒有定義 ifndef nullptr define nullptr 0 endif 鍊錶的節點元素類 template...

資料結構 線性表 鍊錶

在之前了解完什麼是資料結構之後 資料結構 線性表 順序表 陣列 我們再來看看線性結構另外一種實現方式 鍊錶順序表中的鍊錶沒有物理上的連續儲存要求,只需要在儲存資料時通過 鏈 的方式將資料進行連線,而這個 鏈 的實現就是通過指標來實現的。鍊錶的連續儲存方式 對於抽象資料型別來說,每一種資料結構都有自己...

資料結構 線性表(順序表 鍊錶)

線性表 1 線性表是一種邏輯結構,表示一種一對一的邏輯關係,除首節點和尾節點,每個結點只有乙個前驅結點和乙個後繼結點 2 兩種實現的物理結構 順序儲存,鏈式儲存 順序表 1 定義 用一組位址連續的儲存單元,一次儲存線性表中的元素,使得邏輯位置相鄰的元素物理位置也相鄰。2 特點 順序表元素的位序從1開...