#include"stdio.h"
#include"string.h"
#include"stdlib.h"
#include"malloc.h"
#include"conio.h"
/*å®ä¹DataType为intç±»å*/
typedef int DataType;
#define TRUE 1
#define FALSE 0
/*åé¾è¡¨çç»ç¹ç±»å*/
typedef struct LNode
{DataType data; <br/> struct LNode *next; <br/> }LNode,*LinkedList;
/*åå§ååé¾è¡¨*/
LinkedList LinkedListInit()
{LinkedList L; <br/> L=(LinkedList)malloc(sizeof(LNode)); <br/> L->next=NULL;<br/> printf("åå§ååé¾è¡¨æå\n"); <br/> return L; <br/>}
/*æ¸
空åé¾è¡¨*/
void LinkedListClear(LinkedList &L)
{L->next=NULL; <br/> printf("é¾è¡¨å·²ç»æ¸
空\n"); <br/>}
/*æ£æ¥åé¾è¡¨æ¯å¦ä¸ºç©º*/
int LinkedListEmpty(LinkedList &L)
{if(L->next==NULL) <br/> {printf("åé¾è¡¨ä¸ºç©º\n"); return TRUE;}
else
{printf("åé¾è¡¨é空\n");return FALSE;}
}
/*éååé¾è¡¨*/
void LinkedListTraverse(LinkedList &L)
{LinkedList p; <br/> p=L->next; <br/> if(p==NULL) <br/> printf("åé¾è¡¨ä¸ºç©ºè¡¨\n"); <br/> else <br/> {printf("é¾è¡¨ä¸çå
ç´ ä¸º:\n"); <br/> while(p!=NULL) <br/> {printf("%d ",p->data); p=p->next;}
}
printf("\n");
}
/*æ±åé¾è¡¨é¿åº¦*/
int LinkedListLength(LinkedList &L)
{LinkedList p; <br/> int j; <br/> p=L->next; <br/> j=0; <br/> while(p!=NULL) <br/> { j++; p=p->next;}
return j;
}
/*ä»é¾è¡¨ä¸æ¥æ¾å
ç´ */
LinkedList LinkedListGet(LinkedList &L,int i)
{LinkedList p;<br/> p=L->next;int j=1; <br/> while(p&&j<i) {p=p->next; j++;}
if(p) printf("ä½åºä¸º%dçå
ç´ çå¼ä¸º%d\n",i,p->data);
else printf("æ¥è¯¢ä½ç½®ä¸æ£ç¡®\n");
}
/*ä»é¾è¡¨ä¸æ¥æ¾ä¸ç»å®å
ç´ å¼ç¸åçå
ç´ å¨é¡ºåºè¡¨ä¸çä½ç½®*/
int LinkedListLocate(LinkedList &L,DataType x)
{LinkedList p;int i=1; <br/> p=L->next; <br/> while(p && p->data != x) {p=p->next;i++;}
if(p) {printf("ææ¥æ¾çå
ç´ %då¨è¡¨ä¸çä½ç½®ä¸º%d\n",x,i);return i; }
else {printf("ææ¥æ¾çå
ç´ %dä¸åå¨\n",x);return 0; }
}
/*åé¾è¡¨ä¸æå
¥å
ç´ */
void LinkedListInsert(LinkedList &L, int i, DataType x)
{LinkedList p,s;<br/> int j=0; p=L; <br/> while(p&&j<i) {p=p->next;j++;}
if(!p||j>i) printf("æå
¥ä½ç½®ä¸æ£ç¡®\n");
else
{s=(LNode *)malloc(sizeof(LNode)); <br/> s->data=x; <br/> s->next=p->next; <br/> p->next=s; <br/> printf("å¨è¡¨ä¸ç¬¬%d个èç¹åæå
¥%dæå\n",i,x); <br/> }
}
/*ä»é¾è¡¨ä¸å é¤å
ç´ */
void LinkedListDel(LinkedList &L,int i)
{ LinkedList p,q;
int j=0;
p=L;
while(p->next&&j<i-1) {p=p->next;j++;}
if(p->next==NULL)
printf("å é¤ä½ç½®ä¸æ£ç¡®\n");
else
{q=p->next;p->next=q->next;free(q);<br/> printf("第%d个å
ç´ å·²ä»é¾è¡¨ä¸å é¤\n",i);<br/> }
}
/*æåæ¹å¥½çå°å¤´æåæ¹ä¸ºå°¾ææ³äº*/
LinkedList LinkedListCreat(LinkedList&L,int n) /*建ç«åé¾è¡¨*/
{ int i;
DataType x;
LinkedList p;
L=(LinkedList)malloc(sizeof(LNode));
L->next=NULL;
for(i=n;i>0;--i)
{p=(LinkedList)malloc(sizeof(LNode));<br/> printf("请ä¾æ¬¡è¾å
¥é¾è¡¨ä¸çå
ç´ :");<br/> scanf("%d",&x);<br/> p->data=x;<br/> p->next=L->next;L->next=p;<br/> }
printf("è¾å
¥å®æ¯\n");
return L;
}
main()
{printf("请ç¨æ°åé®éæ©æä½\n\n");<br/> printf("1.åå§å\n");<br/> printf("2.建ç«åé¾è¡¨\n");<br/> printf("3.æ¸
空\n");<br/> printf("4.æ±é¾è¡¨é¿åº¦\n");<br/> printf("5.æ£æ¥é¾è¡¨æ¯å¦ä¸ºç©º\n");<br/> printf("6.éåé¾è¡¨\n");<br/> printf("7.ä»é¾è¡¨ä¸æ¥æ¾å
ç´ \n");<br/> printf("8.ä»é¾è¡¨ä¸æ¥æ¾ä¸ç»å®å
ç´ å¼ç¸åçå
ç´ å¨é¡ºåºè¡¨ä¸çä½ç½®\n");<br/> printf("9.åé¾è¡¨ä¸æå
¥å
ç´ \n");<br/> printf("0.ä»é¾è¡¨ä¸å é¤å
ç´ \n\n");<br/> printf("æå
¶ä»é®éåº\n"); <br/> <br/>LinkedList L;<br/>int i,x,n,quit=0;<br/>while(!quit)<br/>switch(getch()) <br/>{<br/>case '1':L=LinkedListInit(); break;<br/>case '2':printf("请è¾å
¥éè¦çé¾è¡¨çé¿åº¦ä¸º:");scanf("%d",&n);L=LinkedListCreat(L,n); break; <br/>case '3':LinkedListClear(L);break; <br/>case '4':printf("é¾è¡¨çé¿åº¦ä¸º %d(ä¸å«å¤´èç¹)\n",LinkedListLength(L)); break; <br/>case '5':LinkedListEmpty(L); break; <br/>case '6':LinkedListTraverse(L); break; <br/>case '7':printf("请è¾å
¥å¾
æ¥è¯¢å
ç´ å¨é¾è¡¨ä¸çä½ç½®:");scanf("%d",&i);LinkedListGet(L,i); break; <br/>case '8':printf("请è¾å
¥å¾
æ¥è¯¢å
ç´ çå¼:"); scanf("%d",&x); LinkedListLocate(L,x); break; <br/>case '9':printf("请è¾å
¥æå
¥å
ç´ çä½ç½®åå¼(ä¸é´ç¨éå·éå¼):\n"); scanf("%d,%d",&i,&x); <br/> LinkedListInsert(L,i,x); break; <br/>case '0':if(LinkedListEmpty(L)==1) printf("é¾è¡¨å·²ç»ä¸ºç©º,ä¸è½å é¤\n");<br/> else printf("请è¾å
¥å¾
å é¤å
ç´ çä½ç½®:\n"); scanf("%d",&i); LinkedListDel(L,i);<br/> break; <br/><br/>default:quit=1; <br/>}
}
温馨提示:答案为网友推荐,仅供参考