日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java单链表逆序输出_在数据结构单链表中如何实现倒序输出

發布時間:2025/3/19 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java单链表逆序输出_在数据结构单链表中如何实现倒序输出 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引用du瓶邪的回答:

如下:

#include

#include

typedef struct node

{

int data;

node* pNext;

}Node;

//鏈表的操作,以有頭節點為例,無頭節點類似

Node* head = NULL;

//創建鏈表,頭結點data=0,pNext=NULL;

bool createNodeList()

{

head = (Node*) malloc(sizeof(Node));

if(NULL == head)

{

return false;

}

else

{

head->data = 0;

head->pNext = NULL;

return true;

}

}

//增加節點

bool addNode(Node* node)

{

if(NULL == head)

{

return false;

}

Node* p = head->pNext;

Node* q = head;

while(NULL != p)

{

q = p;

p = p->pNext;

}

q->pNext = node;

node->pNext = NULL;

return true;

}

//刪除節點

bool deleteNode(int index)

{

if(NULL == head)

{

return false;

}

Node* p = head->pNext;

int length = 0;

while(NULL != p)

{

length ++;

p = p->pNext;

}

if(length < index)

{

return false;

}

else

{

Node* q = head;

p = head;

for(int i=0;i

{

q = p;

p = p->pNext;

}

Node* t = p->pNext;

q->pNext = t;

free(p);

return true;

}

}

//逆序

void reverseNodeList()

{

if(NULL == head)

{

return;

}

//如果鏈表長度為1

if(head->pNext == NULL)

{

return;

}

Node* p = head->pNext;

Node* q = p->pNext;

Node* t = NULL;

while(NULL != q)

{

t = q->pNext;

q->pNext = p;

p = q;

q = t;

}

head->pNext->pNext = NULL;

head->pNext = p;

}

//排序(降序)

void sort()

{

//冒泡排序

Node* pHead = head;

if(head == NULL)

{

return;

}

if(pHead->pNext == NULL)

{

return;

}

Node* pi = pHead->pNext;

Node* pj = pi->pNext;

for(;pi != NULL;pi=pi->pNext)

{

for(pj = pi->pNext;pj != NULL;pj=pj->pNext)

{

if(pj->data>pi->data)

{

int tmp = pj->data;

pj->data = pi->data;

pi->data = tmp;

}

}

}

}

//銷毀

void destroyNodeList()

{

if(NULL == head)

{

return;

}

if(NULL == head->pNext)

{

free(head);

head = NULL;

return;

}

Node* p = head->pNext;

while(NULL != p)

{

Node* tmp = p;

p = p->pNext;

free(tmp);

}

free(head);

head = NULL;

}

void main()

{

createNodeList();

Node* node1 = (Node*)malloc(sizeof(Node));

node1->data = 1;

node1->pNext = NULL;

Node* node2 = (Node*)malloc(sizeof(Node));

node2->data = 2;

node2->pNext = NULL;

addNode(node1);

addNode(node2);

reverseNodeList();

Node* node3 = (Node*)malloc(sizeof(Node));

node3->data = 3;

node3->pNext = NULL;

addNode(node3);

sort();

deleteNode(2);

destroyNodeList();

}

展開全部

倒敘那個循環是錯的

已贊過

已踩過<

你對這個回答的評價是?

評論

收起

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的java单链表逆序输出_在数据结构单链表中如何实现倒序输出的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。