C 鍊錶 實操

2022-05-11 04:55:02 字數 1705 閱讀 9704

一、鍊錶的基礎操作

1.定義乙個鍊錶

struct

listnode

};

2.建立乙個基礎鍊錶(長度為n)

listnode* create_normal_list(int

n) end->next=null; //

尾節點最後指向乙個新的空位址

head->last=null; //

頭節點的前一位不存在

return

head;

}

3.建立環狀鍊錶

將鍊錶的尾節點練到頭節點,就是乙個環

listnode* create_circle_list(int

n) end->next=head; //

尾節點的下一位指向頭節點

head->last=end; //

頭節點的前一位指向尾節點

return

head;

}

4.修改鍊錶的資料

將鍊錶list上第n個位置的值改為x

void change_value(listnode* list,int n,int

x) p->val=x; //

修改值}

5.刪除節點

相當於將這個位置摳掉,前乙個節點的next指向p節點的後乙個,後乙個節點的last指向p節點的前乙個

void delete_point(listnode* list,int

n) p->last->next=p->next; //

將節點p的前乙個節點的後乙個節點指向p的後乙個節點

p->next->last=p->last; //

將節點p的後乙個節點的前乙個節點指向p的前乙個節點

free(p); //

刪除p這個節點

}

6.插入節點

在鍊錶list的第n個位置的後面插入乙個新節點

void insert_point(listnode* list,int n,int x)

listnode* now; //

新建乙個節點

now=new listnode(0); //

分配記憶體

now->val=x; //

新節點的值為x

now->next=p->next; //

新節點的後乙個節點是p節點原本的後乙個節點

now->last=p; //

因為插入在p節點後面,新節點的前乙個節點是p節點

p->next->last=now; //

p節點的後乙個節點,它的前乙個節點變成新節點

p->next=now; //

p節點的後乙個節點變成新節點

}

7.查詢節點

listnode* search_point(listnode* list,int

n)

returnp;}

二、鍊錶的應用

鍊錶的基本操

實現鍊錶的增加 刪除 查詢和反轉 class link public void display class linklist 插入頭節點 public void insertfirst int data 刪除頭結點 public link deletefirst 查詢 public link fin...

mysql分割槽實操

分成2步 2.將原表資料插入新錶 insert into 目標表 select from 表 create table met shopv2 order copy1 id int 11 not null auto increment,orderid varchar 20 character set ...

redis備份實操

終於發布了個人的第乙個課程 redis備份實操,位址 1 不能搞出問題 虛擬機器測試環境不擔心這個啊 2 任務得在夜間進行 白天業務高峰期,不適合做維護 3 必須考慮可用性,得把資料備份到其他的系統上。我的搞法是 1 準備乙個資料校驗環境,安裝上redis,用於備份檔案匯入。通過對比生產環境redi...