回覆列表
-
1 # 何以笙丶丶
相關內容
- 設計一個演算法,在一個單鏈表中值為y的結點前插入一個值為x的結點?
- 2.設計一個演算法,將單鏈表中結點以逆序排列。逆序的單鏈表中的結點均為原表中的結點?
- 一個帶頭結點的單鏈表,L為連結串列的頭指標,設計算法刪除連結串列中的偶數結點?
- 單鏈表的逆置使用遞迴演算法出現-842150451這個值,請求高手予以解決?
- 設計一個在不帶頭結點的連結串列的第i個元素之前插入一個元素的演算法。求高手,指點?
- 如何用類c語言計算帶頭結點的單鏈表中的節點個數?
- 寫一演算法在帶頭結點的單鏈表結構上實現線性表操作LOCATE(L,X)?
- 有一線性表儲存在一個帶頭結點的迴圈單鏈表L中,寫出計算線性表元素個數的演算法?
- 有一個有序單鏈表(從小到大排序),表頭指標為head,編寫一個函式向該單鏈表中插入一個元素為x的結點,使?
#include
#include
#define LEN sizeof(struct Node)
struct Node
{
int num ;
struct Node *next;
};
int main()
{
struct Node *creat();
struct Node *del(struct Node *head);
void print(struct Node *);
struct Node *head;
head=creat();
print(head);
del(head);
print(head);
return 0;
}
//建立連結串列的的函式
struct Node *creat()
{
struct Node *head;
struct Node *p1,*p2;
p1=p2=(struct Node *) malloc(LEN);
head=NULL;
int n = 0;
p1->num = n;
while (p1->num
{
n=n+1;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=(struct Node *)malloc(LEN);
p1->num = n;
}
p2->next=NULL;
return (head);
}
struct Node *del(struct Node *head)
{
struct Node *p,*q,*f,*r;
p=head;
while(p!=NULL)
{
r=p;
f=r->next;
while(f!=NULL)
{
if(f->num % 2 != 0)
{
q=f;
r->next=f->next;
f=f->next;
free(q);
}
else
{
r=f;
f=f->next;
}
}
p=p->next;
}
return head;
}
//輸出連結串列的函式
void print(struct Node *head)
{
struct Node *p;
p=head;
while (p!=NULL)
{
printf("%d\n",p->num);
p=p->next;
}
}