概述
#include <iostream>
#include <stdio.h>
using namespace std;
typedef struct LNode{
int data;
struct LNode* next;
}LNode,*Linklist;
// 头插法建立单链表
void HeadInsert(Linklist &L){
int x;
L = (Linklist)malloc(sizeof(LNode)); //申请头节点
L->next = NULL;
cout<<"请输入链表每一项,当输入为999时完成链表:";
cin>>x;
while (x!=999) {
LNode *s
= new LNode;
s->data=x;
s->next = L->next;
L->next = s;
cin>>x;
}
}
//尾插法建立单链表
void Tailinsert(Linklist &L){
LNode *p;
int x;
L = (Linklist)malloc(sizeof(LNode));
p=L;
cout<<"请输入链表每一项,当输入为999时完成链表:";
cin>>x;
while (x!=999) {
LNode *s =new LNode;
s->data =x;
p->next = s;
p = s;
cin>>x;
}
p->next=NULL;
}
//按序号查找节点值
LNode* GetElem(Linklist L,int i){
int j= 1;
LNode *p = L->next;
if (i==0) {
return L;
}
if (i<1) {
return NULL;
}
while (p&&j<i) {
p=p->next;
j++;
}
return p;
}
//按值查找
LNode* GetElemByint(Linklist &L,int x){
LNode *p=L->next;
while (p!=NULL&&p->data!=x) {
p=p->next;
}
return p;
}
//插入节点(前插)先查找前驱再插入
void InsertLink(Linklist &L,int i,int x){
LNode *p = GetElem(L, i-1);
LNode *s = new LNode;
s->next = p->next;
p->next = s;
s->data=x;
}
//删除节点
void DelatePoint(Linklist &L,int i){
LNode *p = GetElem(L, i-1);
LNode *s =new LNode;
s=p->next;
p->next=s->next;
free(s);
}
int GetLength(Linklist L){
LNode *p = L->next;
int count = 0;
while (p!=NULL) {
p=p->next;
count++;
}
return count;
}
// 打印输出链表
void PrintfLinklist(Linklist L){
LNode *p = L->next;
while (p!=NULL) {
cout<<p->data<<" ";
p = p->next;
}
cout<<endl;
}
最后
以上就是淡然小馒头为你收集整理的C++单链表简单操作的全部内容,希望文章能够帮你解决C++单链表简单操作所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复