单链表的查找与修改
本次使用C++语言
#include
using namespace std;
struct node{
int num;
node* next;
};
node* head,*now,*p;
int NodeNum;
node* create()
{
int x;
cout << "Please input NodeNum:";
cin >> NodeNum;
head=new node;
now=head;
for(int i=1;
i<=NodeNum;
i++)
{
cout<<"Please input number:";
cin>>x;
p=new node;
p->num=x;
now->next=p;
now=p;
}
now->next=NULL;
return head;
}
【单链表的查找与修改】解析:
```
p=new node;
p->num=x;
now->next=p;
now=p;
```
p=new node;
为p申请一个节点
p->num=x;
为p中的数据域赋值
now->next=p;
另now的下一个结点指向p,第一次便是将头结点与p相连
now=p;
让now指针指到p指针指向的结点处下一次再申请结点 继续同理操作 便形成了单向链表
主函数部分:
int main()
{
int SearchNode;
char YN;
int Value;
node* po;
po=create();
cout << "Please input SearchNode:";
cin >> SearchNode;
for (int i = 1;
i <= SearchNode;
i++)
{
po = po->next;
}
cout << po->num;
cout << "是否进行修改(y/n):"<> YN;
if (YN == 'y')
{
cout << "Please enter the revised value:";
cin >> Value;
po->num = Value;
}
cout << endl << endl;
po = head->next;
while (po != NULL)
{
cout << "num:" << po->num << endl;
po = po->next;
}
return 0;
}
解析:
node* po;
po=create();
定义结构体指针,是指针指向头结点,且头结点是数据域是没有数据的。for (int i = 1;
i <= SearchNode;
i++)
{
po = po->next;
}
前提是输入查找的结点数
然后让指针从头结点跳到对应的结点
cout << po->num;
cout << "是否进行修改(y/n):"<> YN;
并输出 且提示是否修改 po->num = Value;
此处进行修改
修改后:
po = head->next;
while (po != NULL)
{
cout << "num:" << po->num << endl;
po = po->next;
}
另po指针从第一个有数据的结点开始输出数据
以上便是对单链表的查找并修改
最后,镇店之图:
文章图片
推荐阅读
- 热闹中的孤独
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个人的旅行,三亚
- 布丽吉特,人生绝对的赢家
- 慢慢的美丽
- 尽力
- 一个小故事,我的思考。
- 家乡的那条小河
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量