还剩10页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
/*单链表的各种操作*/#include stdiohoinclude malloch#define null0字符型数据*/typedef intElemType;/*struct LNodeElemTypedata;struct LNodenext;;;void setnullstruct LNode**pint lengthstruct LNode**p;ElemType getstruct LNode**p,int i;void insertstruct LNode**p,ElemType x,int i;void delestruct LNode**p,int i;;void displaystruct LNode**pint locatestruct LNode**p,ElemType x;void main/*定义静态变量*/struct LNode*head,*q;int select,x1,x2,x3,x4;;int i,n,printf%d”q-data;printfC5;int m,g;chare,y;;/*建设链表并设置为空表*/setnull head请输入数据长度”;printf;scant%〈=for i=1;i n;i++J i将数据插入到单链表中printfscanfC,%d,\y;insert head,y,i;}/*插入数据到链表*//*显示链表所有数据*/display head;求长度length;取结点;get求值查找;printf删除结点;delete退出”;printfselect0;printf,%select;whileselect!=0{switch selecteasel:;x1=lengthhead输出单链表的长度%€!”,printf x1;;displayhead}break;case2I请输入要取得结点”;printf”scant%d”,m;x2=get head,m printf,,%d,,,x2;display head;}break;case3:请输入要查找的数据”;%,scantd e;,;x3=locate heade,printfC%d,9,x3;displayhead;;}break case4请输入要删除的结点”;printfscant;,gdele head,g;;display head;}break}printf,,select1求长度length”;printf取结点;select2get printfv select3求值查找locate0;删除结点printfselect4deleteprintfv select0退出”;printf inputyour selectscanf%d,9,select;}}void setnullstruct LNode**p*p=null;*火int lengthstruct LNodepint n=0;struct LNode*q=*p;while q!=nulln++;;q=q-nextreturn n;ElemType getstruct LNode**p,int iint j=1;;struct LNode*q=*pwhile ji q!=nullq=q-next;;j++}if q!=null;return q—dataelse(位置参数不正确!{printf;火return0}int locatestruct LNode*p,ElemTypex;int n=0struct LNode*q=*p;while q!=nullq-data!=xq=q—next;n++;ifq==nullreturn-1;else;returnn+1void insertstructLNode**p,ElemType x,int istructLNode*s,*q;;s=structLNode*mallocsizeof structLNodes—data=x;;q=*pifi==1;s—next=q*P=s;else一〉whileji-1q next!=null;q=q-next;j++ifj==i-1s—next=q-next;一;q next=s}else位置参数不正确!”;printfvoid delestructLNode**p,int i;intj=1;structLNode*q=*p,*tifi==1;t=q;*p=q-next}else一〉while ji-1q next!=null〉;q=q-next;j++if q-next!=nullj==i-1〉;t=q—nextelse位置参数不正确!printf};ift!=null freet}void displaystructLNode**pstruct LNode*q;;q=p单链表显示”;printf ifq==null链表为空!;printf〉;else ifq-next==null n”,q-dataelsewhile q-next!=null{〉,〉;printfC%d—”q—dataq=q——next;。