头插法建立带头节点链表
- void Createhead(linklist& l)//头插法带头节点
- {
- l = new list;
- linklist p ;
- l->next = NULL;
- cout << "输入链表长度:"<
- int n;
- cin >> n;
- for (int i = 0; i < n; i++)
- {
- p = new list;
- cin >> p->data;
- p->next = l->next;
- l->next = p;
- }
- }
尾插法建立带头节点链表
- void Createrear(linklist& l)//尾插法
- {
- l = new list;
- linklist p,r;
- l->next = NULL;
- r = l;
- cout << "输入链表长度:" << endl;
- int n;
- cin >> n;
- for (int i = 0; i < n; i++)
- {
- p = new list;
- cin >> p->data;
- p->next = NULL;
- r->next = p;
- r = p;
- }
- }
头插法建立不带头节点链表
- void Createlist1(linklist& l)//头插法不带头节点
- {
- l = new list;
- linklist p;
- l->next = NULL;
- cout << "输入链表长度:" << endl;
- int n;
- cin >> n;
- cin >> l->data;
- for (int i = 1; i < n; i++)
- {
- p = new list;
- cin >> p->data;
- p->next = l;
- l = p;
- }
- }
尾插法建立不带头节点链表
- void Createlist2(linklist& l)//尾插法不带头节点
- {
- l = new list;
- linklist p,q;
- l->next = NULL;
- cout << "输入链表长度:" << endl;
- int n;
- cin >> n;
- cin >> l->data;
- q = l;
- for (int i = 1; i < n; i++)
- {
- p = new list;
- cin >> p->data;
- q->next = p;
- q = p;
- }
- }
完整代码:
- #include
- using namespace std;
- typedef struct list
- {
- int data;
- list* next;
- }list, * linklist;
- void Createhead(linklist& l)//头插法带头节点
- {
- l = new list;
- linklist p ;
- l->next = NULL;
- cout << "输入链表长度:"<
- int n;
- cin >> n;
- for (int i = 0; i < n; i++)
- {
- p = new list;
- cin >> p->data;
- p->next = l->next;
- l->next = p;
- }
- }
- void Createrear(linklist& l)//尾插法
- {
- l = new list;
- linklist p,r;
- l->next = NULL;
- r = l;
- cout << "输入链表长度:" << endl;
- int n;
- cin >> n;
- for (int i = 0; i < n; i++)
- {
- p = new list;
- cin >> p->data;
- p->next = NULL;
- r->next = p;
- r = p;
- }
- }
- void Createlist1(linklist& l)//头插法不带头节点
- {
- l = new list;
- linklist p;
- l->next = NULL;
- cout << "输入链表长度:" << endl;
- int n;
- cin >> n;
- cin >> l->data;
- for (int i = 1; i < n; i++)
- {
- p = new list;
- cin >> p->data;
- p->next = l;
- l = p;
- }
- }
- void Createlist2(linklist& l)//尾插法不带头节点
- {
- l = new list;
- linklist p,q;
- l->next = NULL;
- cout << "输入链表长度:" << endl;
- int n;
- cin >> n;
- cin >> l->data;
- q = l;
- for (int i = 1; i < n; i++)
- {
- p = new list;
- cin >> p->data;
- q->next = p;
- q = p;
- }
- }
- void Printlist1(linklist l)
- {
- linklist p = l->next;
- while (p!=NULL)
- {
- cout << p->data << " ";
- p = p->next;
- }
- cout << endl;
- }
- void Printlist2(linklist l)
- {
- linklist p = l;
- while (p != NULL)
- {
- cout << p->data << " ";
- p = p->next;
- }
- cout << endl;
- }
- int main()
- {
- linklist L1,L2,L3,L4;
- cout << "头插法(带头节点)建立链表:" << endl;
- Createhead(L1);
- cout << "尾插法(带头节点)建立链表:" << endl;
- Createrear(L2);
- cout << "头插法(带头节点)链表:" << endl;
- Printlist1(L1);
- cout << "尾插法(带头节点)链表:" << endl;
- Printlist1(L2);
- cout << "头插法(不带头节点)建立链表:" << endl;
- Createlist1(L3);
- cout << "尾插法(不带头节点)建立链表:" << endl;
- Createlist2(L4);
- cout << "头插法(不带头节点)链表:" << endl;
- Printlist2(L3);
- cout << "尾插法(不带头节点)链表:" << endl;
- Printlist2(L4);
- }
-
相关阅读:
唐朝边戍 NFT 作品集 2.0 上线市场平台,体验中国古代文化的魅力
logstash安装zabbix插件报错解决
哈希/散列--哈希表[思想到结构]
MindSpore能把两个实数组合成复数的操作算子么
dll文件【C#】
VLAN 配置案例
【python入门】函数,类和对象
JS defineProperty详解
分销系统功能有哪些?好的分销比例如何设定?
为什么ArcGIS添加的TIFF栅格数据是一片纯色
-
原文地址:https://blog.csdn.net/qq_74156152/article/details/133048023