C 資料結構 — 線性表(鏈式表)

來源:互聯網
上載者:User
#include <stdio.h>#include <stdlib.h>#define MAXLENGTH 1000struct linkNode{   int date;   struct linkNode *link;};typedef struct linkNode linkNode;linkNode* createLinkNode(){       int i ;    linkNode *node ,*p,*_temp;    node = (linkNode*)malloc(sizeof(linkNode));    if(!node){       printf("分配記憶體失敗");       exit(1);    }    puts("請輸入一個值");    scanf("%d",&node->date);    node->link = NULL;    _temp = node;    for(i =1; i<3 ;i++){               p = (linkNode*)malloc(sizeof(linkNode));        if(!p){           puts("分配記憶體失敗");           exit(1);        }        puts("請輸入一個值");        scanf("%d",&p->date);        p->link =NULL;        _temp->link = p;        _temp = _temp->link;    }    return node;    }linkNode* findNode(linkNode *head, int num){    linkNode *p = head;    while(p){        if(p->date == num)return p;        p = p->link;    }    return p;}void showNode(linkNode* p){    while(p!=NULL){        printf("%d\t",p->date);        p = p->link;    }}void insertNode(linkNode *p,int val){    linkNode *newNode = (linkNode*)malloc(sizeof(linkNode));    newNode->date = val;    newNode->link = NULL;    if(p->link == NULL) p->link = newNode;    else{        newNode->link = p->link;        p->link = newNode;    }    return ;}void deleteNode(linkNode *head,linkNode *p){    linkNode *_temp;    if(p->link !=NULL){        _temp = head;        while(_temp->link !=NULL){            if(_temp->link == p){               _temp->link = p->link;               break;            }            _temp = _temp->link;        }    }    free(p);    return;}void freeNode(linkNode *head){    linkNode *ptr;    while(head !=NULL){        ptr = head;        head = head->link;        free(ptr);    }}void main(){    int sear,sear1;    linkNode *newHead,*ptr ;    newHead = createLinkNode();    showNode(newHead);    printf("輸入要找的值");    scanf("%d",&sear);    ptr = findNode(newHead,sear);    if(!ptr){       printf("沒有找到要找的值");    }else{       puts("請輸入要插入的資料");       scanf("%d",&sear);       insertNode(ptr,sear);       showNode(newHead);    }    puts("請輸入要尋找並刪除的資料");    scanf("%d",&sear1);    ptr = findNode(newHead,sear1);    if(!ptr){       puts("沒找到該值");    }else{       deleteNode(newHead, ptr);       showNode(newHead);    }}

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.