已知head指向帶頭結點的單詞連結串列,連結串列中每個結點包含資料long和指向被解構結點的指標

時間 2021-09-05 12:00:54

1樓:

node* reverse(node * head) //如果不帶返回值,引數要寫成node ** head ,涉及到引數值傳遞和地址傳遞問題

else

while(head != null) //思想是從待翻轉的連結串列中依次取一個節點,每次取一個都放在臨時儲存的連結串列的最前面

head = tmp;

return head;

}以上是最好的方法,還有一種就是先遍歷連結串列,把每個節點的指標儲存在一個陣列中,然後從陣列最後開始,反過來重新構建連結串列,這樣空間複雜度高,但是簡單

2樓:碧海風雲

#include

#include

#include

#define elemtype long /*元素型別*/

#define elemprinttype "%ld\t" /*元素列印型別*/

#define status int

#define overflow -1

#define error 0

#define ok 1

/* 單連結串列資料結構 */

typedef struct lnode  lnode, *linklist;

/******************************** 以下為函式宣告 ********************************/

void initlist (linklist *l); /* 初始化 */

void destroylist (linklist l); /* 銷燬 */

status listisempty (linklist l); /* 判斷單連結串列是否為空 */

int listlength (linklist l); /* 獲取單連結串列長度 */

status listinsertnode (linklist l, int i, elemtype e); /* 單連結串列指定位置插入新元素 */

status listprint (linklist l); /* 輸出連結串列 */

status listreverse (linklist l); /* 逆置連結串列 */

/******************************** 以上為函式宣告 ********************************/

/* 初始化 */

/* 操作結果:構造一個空的單連結串列l */

void initlist (linklist *l)

/* 銷燬 */

/* 初始條件:單連結串列l已存在。操作結果:銷燬單連結串列l */

void destroylist (linklist l)

free (l);

}/* 判斷單連結串列是否為空 */

/* 初始條件:單連結串列l已存在。操作結果:若l為空表,則返回true,否則返回false */

status listisempty (linklist l)

/* 獲取單連結串列長度 */

/* 初始條件:單連結串列l已存在。操作結果:返回l中資料元素個數 */

int listlength (linklist l)

return i;

}/* 單連結串列指定位置插入新元素 */

/* 操作結果:在帶頭結點的單連結串列l中第i個位置之前插入元素e */

status listinsertnode (linklist l, int i, elemtype e)

if (!p || j>i-1) /* 插入位置不合理:i小於1或者大於表長 */

return error;

/* 生成新結點,並插入l中 */

s = (linklist) malloc (sizeof (struct lnode));

s->data = e;

s->next = p->next;

p->next = s;

return ok;

}/* 輸出連結串列 */

status listprint (linklist l)

linklist p = l->next; /* p指向第一個結點 */

while (p!=null)

putchar ('\n');

return ok;

}/* 逆置連結串列 */

/* 初始條件:單連結串列l已存在。操作結果:連結串列元素逆置 */

status listreverse (linklist l)

return ok;

}int main (void)

執行結果

c語言,編寫程式。已知head指向一個帶頭結點的單向連結串列,連結串列中每個結點包含資料域(date)和指

3樓:匿名使用者

#include

#include

typedef struct _node

node,*list;

int getmax_value(list head)node *ptr = head->next;

int max = ptr->data;

while (ptr->next != null)}return max;

}node* getmax_address(list head)node *ptr = head->next;

node *max_address = ptr;

while (ptr->next != null)}return max_address;

}list creatlist(int num)//num為建立節點個數

return head;

}void freelist(list head)}int main()

已知head指向一個帶頭結點的單向連結串列,連結串列中每個結點包含字元型資料域(data)和指標域(next)。請編寫函 5

4樓:千里

已知head指向一個帶頭結點的單向連結串列連結串列中每個結點包含字元型資料域data和指標域next。請編寫函式實現連結串列的逆置。

5樓:光之琉璃影之殤

#include

#include

typedef struct node

node,*pnode;

pnode create(void);

void output(pnode head);

void inverse(pnode head);

int main()

pnode create(void)

;//使用陣列初始化連結串列,遇0連結串列結束,0不存入連結串列pnode head=(pnode)malloc(sizeof(node));

pnode p,q;

head->next=null;

p=head;

for(i=0;a[i]!=0;i++)

return head;

}void output(pnode head)printf("\n");

}void inverse(pnode head)p->next=head->next;

head->next=p;}

電流源的方向,是指向正極,還是指向負極

墨溟棋媌 電流源方向是正極指向負極,還是負極指向正極 電流源就是電源,在電源的外部是從正極流向負極,在電源的內部是從負極流向正極,你問的應該就是電源的內部,從負極到正極 千年青夢 在外電路中電流源方向是指向正極,在電流源內部是指向負極,構成一個迴路 電流源只有電流參考方向,其極性由外電路決定。電壓源...

桌面如何指向D盤,桌面如何指向D盤

你是想把d盤的檔案放在桌面上吧。呵呵,你開啟d盤,然後找到你想把他放在桌面上的哪個檔案,右擊他。然後選擇傳送到 裡面選擇桌面,ok了,開啟桌面,雙擊哪個快捷方式就可以進到d盤 了。一 先修改兩個登錄檔項 hkey current user software microsoft windows cur...

lol裡指向型技能和非指向型的技能是什麼意思

所以根據漢語官方解釋可以已得出結論 1.指向性技能就是指定方向的技能 如 ez的qwe 光輝的qwer 潘森的e 瞎子的q 2.非指向性技能就是指定物件的技能 如 潘森的qw 趙信的e 劍聖的q 瞎子的wr 向 方向 象 物件 所以不要被那些玩家所誤導,他們非要認為原本的指向性技能是指定目標物件的話...