標(biāo)題: 數(shù)據(jù)結(jié)構(gòu)--鏈表的相關(guān)操作 [打印本頁]

作者: 51hei人人    時間: 2016-3-12 16:10
標(biāo)題: 數(shù)據(jù)結(jié)構(gòu)--鏈表的相關(guān)操作
鏈表的結(jié)構(gòu):數(shù)據(jù)域與指針域。
struct node
{int data;struct node * next;};
typedef struct node NODE;
1.建立鏈表:頭插法和尾插法。
尾插法:
NODE *CreateH(int n)
{NODE *head,*p*q;
int i;p=(NODE *)(new NODE);
head=p;q=p;p->next=NULL;
for(i=1;i<=n;i++)
{p=(NODE *)(new NODE);p->data=0;q->next=p;
q=p;q->next=NULL;}return(head);
}
頭插法:
NODE *CreateE(int n)
{NODE *head,*p
int i;p=(NODE *)(new NODE);
head=p;head->next=NULL;
for(i=1;i<=n;i++)
{p=(NODE *)(new NODE);
p->data=0;if(i=1) p->next=NULL;
else p->next=head->next;
head->next=p;
}return(head);
}
2.在鏈表上插入一個結(jié)點。
int Insert(NODE *head,int x,int i)
{NODE *q,*p;int j=0;q=head;
while((q!=NULL)&&(j<i-1))
{q=q->next;j++;}
if(q==NULL)return(0);
p=(NODE *)(new NODE);
p->data=x;p->next=q->next;q->next=p;
return(1)
}
3.在鏈表中刪除一個結(jié)點。
int Delete(NODE *head,int i)
{NODE *p,*q;int j=0;q=head;
while((q!=NULL)&&(j<i-1))
{q=q->next;j++;}
if(q==NULL)return(0);
p=q->next;q->next=p->next;delete p;
return(1);
}






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1