C語言單鏈表建立,插入,刪除

來源:互聯網
上載者:User
#include <stdio.h>#include <stdlib.h>typedef struct Node{int data; //資料域Node *next; //指標域,指向下一個Node節點}Node;Node *create(); //建立一個單鏈表int deleteFromList(Node *linkList, int i); //刪除節點 成功返回0 否則-1int insertIntoList(Node *linkList, int i, int value);//插入節點 成功返回0 否則-1void display(Node *linkList);//遍曆並列印鏈表void main(){Node *LinkList = create();//display(LinkList);insertIntoList(LinkList, 5, 30);display(LinkList);deleteFromList(LinkList, 5);display(LinkList);}Node *create(){int n = 20;Node *pList, *pNew, *pTail; pList = (Node *)malloc(sizeof(Node));pList->next = NULL;pTail = pList;//for(int i = 1; i <= n; i++){pNew = (Node *)malloc(sizeof(Node));if(pNew == NULL){printf("error!!");exit(0);}pNew->data = i;pNew->next = NULL;pTail->next = pNew;pTail = pNew;}pTail->next = NULL;return pList;}int insertIntoList(Node *linkList, int i, int value){//先尋找是否有這個節點Node *p, *q;int j = 1; //計數p = linkList;while(p && j < i) //尋找第i個節點{p = p->next;++j;}if(!p || j > i){return -1;//第i個節點不存在,插入失敗}//現在p是在第4個位置,p->next指向的是第五個值q = (Node *)malloc(sizeof(Node));q->data = value;q->next = p->next;//把第五個值及以後的鏈表下掛到q->next指標上p->next = q;//把q及上面下掛在q->next上的連結 下掛到p->next上return 0;}int deleteFromList(Node *linkList, int i){//檢測是否存在第i個節點Node *Ptr;int j = 1;Ptr = linkList;while(Ptr->next && j < i){Ptr = Ptr->next;++j;}if(!(Ptr->next) || j > i){return -1;//不存在第i個節點}Ptr->next = Ptr->next->next;return 0;}void display(Node *linkList){while(linkList->next){printf("%d\n", linkList->next->data);linkList = linkList->next;}}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.