《數據結構與算法——C語言描述》答案 3.11 查找單鏈表中的特定元素(非遞歸)

轉載請註明出處:http://blog.csdn.net/xdz78


#include <stdio.h>
#include <stdlib.h>
//查找單鏈表中的特定元素,《數據結構與算法——c語言描述》 3.11 答案

typedef struct student {
    int data;
    struct student *next;
}Node;

int main()
{
    int n;//單鏈表的元素個數
    scanf("%d",&n);
    Node *p1,*p2,*head;
    int i,m;
    p1=(Node *)malloc(sizeof(Node ));
    p2=p1;
    head=p1;
    scanf("%d",&p1->data);
    for(i=0;i<n-1;i++){
        p1=(Node *)malloc(sizeof(Node ));
        scanf("%d",&p1->data);
        p2->next=p1;
        p2=p1;
    }
    p2->next=NULL;
    //單鏈表創建完成
    //分別用遞歸和非遞歸完成查找工作
    scanf("%d",&m);//輸入需要查找的元素

    //非遞歸:
    Node *p=head;
    int count=1;//計數
    while(p!=NULL){
        if(p->data==m){
            break;
        }
        else {
            p=p->next;
            count++;
        }
    }
    if(count==n+1){
        printf("未找到該元素!");
    }
    else {
        printf("此元素在鏈表的第%d個",count);
    }

    //遞歸:
    count=search(head);

    return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章