資料結構之連結串列案例四
阿新 • • 發佈:2018-12-11
【題目】試寫一演算法,在帶頭結點單鏈表的第i元素起的所有元素從連結串列移除,並構成一個帶頭結點的新連結串列。
帶頭結點單鏈表的型別定義為:
typedef struct LNode {
ElemType data;
struct LNode *next;
} LNode, *LinkList;
**********/
Status Split_L(LinkList L, LinkList &Li, int i)
/* 在帶頭結點單鏈表L的第i元素起的所有元素 */
/* 移除,並構成帶頭結點連結串列Li,返回OK。 */
/* 若引數不合理,則Li為NULL,返回ERROR。 */
- {
- LNode *q,*p;
- p=q=L;
- if(i<=0)
- {Li=NULL;return ERROR;}
- for(int length=0;length<i;length++)
- {
- q=p;
- p=p->next;
- if(!p)
- {
- Li=NULL;
- return ERROR;
- }
- }//for end
- Li=(LinkList)malloc(sizeof(LNode));
- Li->next=p;
- q->next=NULL;
- return OK;
- }