鍊錶的建立與基本操作(C 實現)

2021-08-21 16:38:34 字數 1550 閱讀 2509

鍊錶即採用鏈式儲存方式的線性表。為了表示每個資料元素

#include #include #include using namespace std;

struct node

;class list

void create()//建立乙個鍊錶

}~list()//析構函式釋放記憶體

}void destroy()//銷毀鍊錶

}void clear()//清空鍊錶,保留第乙個結點head,並設其資料域為0,如有需要可以繼續新增新結點

head->next=null;

head->data=0;

} list *tailinsert(int m)//在表的尾端新增數值m

node *q=new node;

q->data=m;

q->next=null;

p->next=q;

list *a=new list;

a->head=this->head;

return a;

} void tailinsertmore(int a,int m)//在尾段依次新增m個元素的陣列,也可以看做一種建表的方法

}void insert(int i,int m)//在表的第i個位置插入乙個數m

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

}void delete(int i)//刪除表的第i個元素,返回其值m

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

cout<

p->next=q->next;

m=q->data;

delete q;

}cout<

}} int length()//鍊錶長度

cout<

head -> next = null;

while(current != null)

}void sort()//利用氣泡排序從大到小排列

else

}int l=s->data;

s->data=p->data;

p->data=l;

s=s->next;

}} void delete_repeat()//刪除鍊錶中重複出現的元素,只保留第乙個出現的元素,並輸出各出現幾次

q=q->next;

}else

}p=p->next;

} node *r=head,*s=head;

while(r->next != null)

int i=0;

while(s->next->next != null)

s=s->next;

} if(i>0)

}void get()//獲取鍊錶指定位置的元素值

if(p==null || ldata;

cout

node *p=head;

int j=0,i=0;

while(p!=null)

}cout<

c->next=b;

return c;

}int main()

C 實現鍊錶基本操作

前幾天找實習的時候,乙個面試官給我留了乙個題,做乙個鍊錶demo,要求實現建立 插入 刪除等操作。鍊錶是一種常見的資料結構,它是一種物理儲存單元上非連續 非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的。鍊錶由一系列結點 鍊錶中每乙個元素稱為結點 組成,結點可以在執行時動態生成。...

鍊錶的基本操作(c 實現)

跟c語言不同點 1.結點建立方法與釋放方法 2.c 類 加入了建構函式和析構函式 3.每個函式有略微改動 c語言版 keep on going never give up author vinegar tree lang c blog date 2020 10 4 19 32 pragma gcc ...

C 鍊錶的建立與操作

我們知道,陣列式計算機根據事先定義好的陣列型別與長度自動為其分配一連續的儲存單元,相同陣列的位置和距離都是固定的,也就是說,任何乙個陣列元素的位址都可乙個簡單的公式計算出來,因此這種結構可以有效的對陣列元素進行隨機訪問。但若對陣列元素進行插入和刪除操作,則會引起大量資料的移動,從而使簡單的資料處理變...