//單鏈表,上課寫(xiě)的,比較簡(jiǎn)單的操作。鏈表的創(chuàng)建,刪除,插入,查找元素,遍歷的簡(jiǎn)單操作。2017-3-7#include<stdio.h>#include<stdlib.h>#define OK 1#define ERROR 0typedef int ElemType;typedef int Status; typedef struct LNode{ ElemType data; struct LNode *next;}LNode,*LinkList;//函數(shù)定義........................................................LinkList CreatList(int n);void ShowNumber(LinkList haed);Status GetElem(LinkList L,int i,ElemType &e);Status ListInsert(LinkList &L,int i,ElemType e);Status NumbersLen(LinkList L);//實(shí)現(xiàn)部分........................................................LinkList CreatList(int n){ LinkList p,q; LinkList head; head = (LinkList)malloc(sizeof(LNode)); head->next = NULL; q = head; PRintf("請(qǐng)輸入數(shù)據(jù)/n"); for(int i=0;i<n;i++) { p = (LinkList)malloc(sizeof(LNode)); p->next=NULL; scanf("%d",&p->data); q->next = p; q=q->next; } return head;}void ShowNumber(LinkList head){ LinkList p; p = head->next; printf("輸出所有數(shù)據(jù):/n"); while(p) { printf("%-4d",p->data); p=p->next; } printf("/n");}Status GetElem(LinkList L,int i,ElemType &e){ LinkList p; int j =1; p = L->next; while(p && j<i) { p = p->next; j++; } if(!p || j>i) return ERROR; e = p->data; return OK;}Status LinkInsert(LinkList &L,int i,ElemType e){ LinkList p; LinkList q; p = L->next; int j=1; while(p && j<i-1) { p = p->next; j++; } if(!p || j>i) return ERROR; q = (LinkList)malloc(sizeof(LNode)); q->data = e; q->next = p->next; p->next = q; return OK;}Status NumbersLen(LinkList L){ LinkList p; int count = 0; p = L->next; while(p) { count++; p=p->next; } if(count) { printf("鏈表的長(zhǎng)度為:%d/n",count); return OK;} else { printf("鏈表為空!/n"); return ERROR; } }//驅(qū)動(dòng)函數(shù)..................................................................int main(){ int n; int e; int i;// int count; LinkList head; printf("輸入元素個(gè)數(shù):/n"); scanf("%d",&n); head =CreatList(n); ShowNumber(head); printf("請(qǐng)輸入查找第幾個(gè)元素:/n"); scanf("%d",&i); GetElem(head,i,e); printf("查找的元素是: %d/n",e); printf("請(qǐng)輸入在第幾個(gè)元素前插入元素:/n"); scanf("%d",&i); printf("請(qǐng)輸入插入的元素:/n"); scanf("%d",&e); if(LinkInsert(head,i,e)) printf("插入成功/n"); else printf("插入失敗/n"); ShowNumber(head); NumbersLen(head); return 0;}
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注