雙鏈表的表示和實現(C語言)

2021-09-30 16:30:07 字數 1420 閱讀 9635

#include#includetypedef int elemtype;

typedef struct nodedlink;

//建立雙鏈表

dlink * credlink(int n)

p->next=head->prior=null;

return head;

}//遍歷雙鏈表,和單鏈表相同

dlink *showlink(dlink *head)

printf("\n");

} //求表長操作

int getlen(dlink *head)

return len;

} //取元素操作(取出雙鏈表head中第i個結點的值)

int getelem(dlink *head,int i)

if(p==null)return 0;//結點i超過表長

e=p->data;

return e;

} //刪除節點(刪除雙鏈表中第i個節點)

dlink *deletei(dlink *head,int i)

if(p->next==null)return 0;//結點i超過表長

s=p->next;

s->next->prior=p;

p->next=s->next;

free(s);

return head;

} //定位操作(返回雙鏈表中第1個為值為x的結點的位置)

int locate(dlink *head,elemtype x)

if(p==null)return 0;

return i;

//return p;}

//插入操作(在雙鏈表中第i個結點之前插入乙個值為x的結點)

int insertx(dlink *head,elemtype x,int i)

if(p==null)return 0;//插入失敗,插入位置超出表長

s->data=x;

s->next=p->next;

s->prior=p;

p->next->prior=s;

p->next=s;

return 1;

}//輸出操作(從反方向輸出雙鏈表中各個結點的值)

dlink *invertshow(dlink *head)

while(p!=head)}

int main()

型別名 *a(int i,int j)

a是函式名,呼叫它以後能得到乙個指向整型資料得指標(位址)。x,y是函式a 得形參,為整型。請注意*a兩側沒有括號,在a 得兩側分別為*運算子和()運算子。而()的優先順序高於*,因此a先與()結合。顯然這是函式形式。這個函式前面有乙個*,表示此函式是指標型函式(函式值是指標)。最前面的int表示返回的指標指向整型變數。

C語言 雙鏈表

還是 程式設計師面試寶典 上的 include include typedef struct student dnode 建立雙鏈表 dnode create else cycle 0 p next null p head head head next head pre null free p 釋放...

雙鏈表 C語言

雙向鍊錶也叫雙鏈表,是鍊錶的一種,它的每個資料結點中都有兩個指標,分別指向直接後繼和直接前驅。簡單圖示 這次寫的雙鏈表的頭結點是不儲存資料的,所有資料都是存於頭結點的下乙個結點,即所有判斷都以頭結點的下乙個結點為準。資料簡介typedef struct dnode link 函式簡介link cre...

C 實現雙鏈表

主要實現了頭插,頭刪,尾插尾刪,任意位置的插入刪除,鍊錶的逆置以及鍊錶的深淺拷貝 在這裡說明一下,鍊錶用的最多的就是資料的插入什麼的,所以這裡解決深淺拷貝問題,用的是深拷貝,單鏈表,順序表也是一樣,都是用了深拷貝。雙向煉表相比較於單鏈表而言,相對複雜一點,有兩個指標,來進行實現鏈式結構 先面試具體 ...