鏈表的操作

鏈表結(jié)構(gòu)

typedef struct node{ ??

?int data;? ??

struct node *next;

}Node;?

1.鏈表的創(chuàng)建

Node *createList() {? ?

? ? ? ?Node * head = (Node*)malloc(sizeof(Node));? ?

? ? ? ?head->next = NULL;? ?

? ? ? ? return head;

}

2.鏈表的插入(頭插法)

void insertList(Node *head, int insertData){?

? ? ? ? Node * cur = (Node*)malloc(sizeof(Node));? ?

? ? ? ?cur->data = insertData;? ?

? ? ? ?cur->next = head->next;? ?

? ? ? ? head->next = cur;

}

//尾插法

void Insert()

{? int data,i;

? struct Data *head,*r,*s;??

?head = ( struct Data * )malloc( sizeof (struct Data));??

?head->next = NULL;? ?

?? r=head;? ??

for (i=0; i<n;i++){

s = ( struct Data *)malloc(sizeof (struct Data));

s->num = data;

s->next = r->next;

r->next = s;

r=s;

}

}

3.鏈表的遍歷

void traverseList(Node * head){?

? ? ? ?head = head->next;??

? ? ? ? while(head)? ? {? ??

? ? ? ? ? ? ?printf("%d\n",head->data);? ??

? ? ? ? ? ? ? head= head->next;? ?

? ? ? ? ? }

? }

4.計算鏈表的長度

int lenList(Node *head){? ?

? ? ? ?int len = 0;? ?

? ? ? ?head = head->next;? ?

? ? ? ?while(head)? ? { ? ? ? ?

? ? ? ? ? ? ? len++;? ? ??

? ? ? ? ? ? ? head= head->next;?

? ? ? ? }??

? ? ? return len;?

}

5.鏈表的查找

Node *searchList(Node *head, int findData){ ?

? ? ? ? ?head = head->next;?

? ? ? ? ?while(head)? ? {? ? ??

? ? ? ? ?if(head->data == findData)? ? ??

? ? ? ? ? ? ? ? break;? ? ??

? ? ? ? ? ? ? ? head= head->next;??

? ? ? ? }? ??

? ? ? ?return head;

}

6.鏈表的刪除

void deleteNodeList(Node *head, Node *pfind){??

? ? ? ? ?while(head->next != pfind) head = head->next;??

? ? ? ? ?head->next = pfind->next;??

? ? ? ? ?free(find);

? ?}

7.鏈表排序

void sortPopList(Node *head, int len){? ?

? ? ? Node* sh = NULL ,*p = NULL,*q = NULL; ? ??

? ? ? Node * tmp;? ?

? ? ?for(int i = 0; ?i < len-1; i++){

? ? ? ? ? ? ?sh = head;

? ? ? ? ? ? ?p = sh->next;

? ? ? ? ? ? ?q = p->next;

? ? ?for(int j=0; j < len - 1 -i; j++)

? ? {

? ? ? ? ? ?if(p->data > q->data)

? ? ? ? ? {

? ? ? ? ? ? ? ? ?sh->next? = q;

? ? ? ? ? ? ? ? ? p->next = q->next; ??

? ? ? ? ? ? ? ? ? q->next = p;

? ? ? ? ? ? ? ? ? tmp = p;

? ? ? ? ? ? ? ? ? p = q;

? ? ? ? ? ? ? ? ? q = tmp;

? ? ? ? ? ? }

? ? ? ? ? ?sh = sh->next;

? ? ? ? ? ?p = p->next;

? ? ? ? ? ?q = q->next;

? ? ? }

? ?}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • include<iostream> using namespace std; //單鏈表 typedef stru...
    jmychou閱讀 501評論 0 0
  • include <stdio.h> include <stdlib.h> struct student{int d...
    henry_bin閱讀 440評論 0 0
  • github->demo1、創(chuàng)建(單鏈表、雙鏈表、循環(huán)鏈表)2、翻轉(zhuǎn)單鏈表(遞歸和非遞歸)3、判斷鏈表是否存在環(huán)。...
    不會游泳De魚閱讀 185評論 0 1
  • 早起 天才蒙蒙亮,就醒了,一看手機,才七點。自從女兒上初中,每天早上要給她做飯,還要送她上學(xué)開始,現(xiàn)在已經(jīng)習(xí)慣定點...
    飄飄灑灑_e88b閱讀 285評論 0 2
  • 黃水塘里游著白鴨, 高粱梗油青的剛高過頭, 這跳動的心怎樣安插, 田里一窄條路,八月里這憂愁? 天是昨夜雨洗過的,...
    不如寫首歌給我聽閱讀 188評論 0 0

友情鏈接更多精彩內(nèi)容