C單鏈表的操作

2021-07-04 18:24:58 字數 1533 閱讀 2100

單鏈表的建立、刪除結點、插入新結點、遍歷但鍊錶。很多不足之處,希望多多提意見改正:

1、鍊錶

1)        單鏈表的建立

首先建立乙個節點,將頭結點、q臨時節點、建立節點p。都指向這個節點。

接下來迴圈建立鍊錶的每個節點,為了實現人機互動,最好在建立每個節點的時候都詢問是否建立節點,建立下乙個單獨節點結束之後。然後讓q的下乙個節點指向p這樣就建立起了中間鏈結,然後讓q指向p節點。這樣依次迴圈,就建立好了乙個單鏈表。

具體的**:

struct student *creat_line(void)

printf("do you want to creat y/n\n");

scanf("%s", c);

num++;

head    = p;

q       = p;

doprintf("do you want to creat y/n\n");

scanf("%s", c);

num++;

q->next = p;

q       = p;

}while(c[0]=='y');

p       = null;

return head;

}

2)        鍊錶節點的刪除

在各種筆試題目中最常見的就是鍊錶節點的刪除,其實覺得和很奇怪,為什麼總是喜歡考這個呢,感覺好像期末考試一樣。

刪除節點,其實要分是不是刪除頭結點的問題,如果是刪除頭節點,那就直接將頭節點的下乙個節點視為頭節點,然後刪除頭節點就可以了。

如果不是刪除頭節點,就先鎖定需要刪除的節點的前乙個節點q,然後將q->next指向p->nextj然後刪除p節點。

p->next=q->next;delete q;

具體程式如下:

struct student *delete_point(struct student *head, int del_num)

else

p       = p->next;}}

return head;

}

new需要刪除,如果是malloc就直接free就可以了。

3)        遍歷鍊錶

首先是乙個節點指向頭節點,然後依次指向下乙個節點

void view_line(struct student *head)

}

4)        鍊錶節點的插入

插入節點,分在前面插入和在後面插入,這裡只是做了在指定節點後面插入新的節點。

先產生乙個節點,讓新產生的節點指向指定節點的下乙個節點,建立連線,然後使得指定節點指向新建的節點,這樣就連線起來了,是不是很簡單呢!

struct student *insert_point(struct student *head, int insertnum)

q       = q->next;

}return head;

}

單鏈表的操作(C )

單鏈表的操作 c 實驗2 include using namespace std 單鏈表單個結點的結構體 typedef struct lnodelnode,linklist 建立單鏈表 頭插法 void createlist h lnode l,int n 建立單鏈表 尾插法 void creat...

C單鏈表操作

今天面試給 宇龍酷派 鄙視了。我想說,其實鍊錶反轉我會!單鏈表 初始化 建立 顯示 刪除 插入特定位置 刪除特定位置 反轉操作。include include include include typedef struct student node 初始化 node initnode head nex...

C單鏈表操作

函式順序依次為單鏈表的建立 頭插和尾插法 初始化,判空,遍歷,求鍊錶長度,按值查詢,按位查詢,插入,刪除,銷毀操作 並且在主函式中舉例說了鍊錶的建立,遍歷,求長,刪除,插入操作 高階操作 c迴圈鍊錶 include include typedef int datatype 用datatype 替代 ...