線性表 單鏈表

2021-10-10 19:09:57 字數 2813 閱讀 5788

1、單鏈表的結點定義

typedef struct node

slnode;

2、初始化listinitiate(slnode **head)

void listinitiate(slnode **head)//初始化 

3、求當前資料元素個數listlength(slnode *head)

int listlength(slnode *head)

return size;

}

4、插入int listinsert(slnode *head,int i,datatype x)

int listinsert(slnode *head,int i,datatype x)

//在帶頭結點的單鏈表head的第i(

0<

=i<

=size)個結點前插入乙個存放資料元素x的結點

//插入成功則返回1,失敗則返回0

if(j!=i-1)q=

(slnode *)malloc(sizeof(slnode))

;//生成新結點

q->data=x;//新結點資料域賦值

q->next=p->next;

p->next=q;

return1;

}

5、刪除int listdelete(slnode *head,int i,datatype *x)

int listdelete(slnode *head,int i,datatype *x)

//刪除帶頭結點單鏈表head的第i(

0<

=i<

=size-1)個結點

//被刪除結點的資料域值由x帶回,刪除成功則返回1,失敗返回0

if(j!=i-1)

s=p->next;//指標s指向ai結點

*x=s->data;//把指標s所指結點的資料域值賦予x

p->next=p->next->next;//刪除

free(s)

;//釋放指標s所指結點的記憶體空間

return1;

}

6、取資料元素int listget(slnode *head,int i,datatype *x)

int listget(slnode *head,int i,datatype *x)

if(j!=i)

*x=p->data;

return1;

}

7、撤銷單鏈表void destroy(slnode **head)

void destroy(slnode **head)

*head=null;

}

8、單鏈表頭檔案linlist.h

#include

#include

typedef struct node

slnode;

void listinitiate(slnode **head)//初始化

int listlength(slnode *head)

return size;

}int listinsert(slnode *head,int i,datatype x)

//在帶頭結點的單鏈表head的第i(

0<

=i<

=size)個結點前插入乙個存放資料元素x的結點

//插入成功則返回1,失敗則返回0

if(j!=i-1)q=

(slnode *)malloc(sizeof(slnode))

;//生成新結點

q->data=x;//新結點資料域賦值

q->next=p->next;

p->next=q;

return1;

}int listdelete(slnode *head,int i,datatype *x)

//刪除帶頭結點單鏈表head的第i(

0<

=i<

=size-1)個結點

//被刪除結點的資料域值由x帶回,刪除成功則返回1,失敗返回0

if(j!=i-1)

s=p->next;//指標s指向ai結點

*x=s->data;//把指標s所指結點的資料域值賦予x

p->next=p->next->next;//刪除

free(s)

;//釋放指標s所指結點的記憶體空間

return1;

}int listget(slnode *head,int i,datatype *x)

if(j!=i)

*x=p->data;

return1;

}void destroy(slnode **head)

*head=null;

}

【2-3】建立乙個線性表,首先依次輸入資料元素1,2,3…10,然後刪除資料元素5,最後依次顯示當前表中的資料元素。要求使用單鏈表。

線性表 單鏈表

define crt secure no deprecate define crt secure cpp overload standard names 1 includeusing namespace std typedef struct node node node headpointer 頭指...

線性表 單鏈表

單鏈表結構與順序儲存結構對比 一 儲存分配方式 1 順序儲存結構用一段連續的儲存單元依次儲存線性表的資料元素 2 單鏈表採用鏈式儲存結構,用一組任意的儲存單元存放線性表的元素 二 時間效能 1 查詢 順序儲存結構o 1 單鏈表o n 2 插入和刪除 順序儲存結構o n 單鏈表找到位置後插入刪除時間o...

線性表 單鏈表

template struct node template class linklist 無參建構函式,建立只有頭結點的空鍊錶 linklist t a int n 有參建構函式,建立有n個元素的單鏈表 linklist 析構函式 int length 求單鏈表的長度 t get int i 按位查...