線性鏈表的基本操作


線性鏈表常見的操作:插入,刪除,查找等等。以下采用尾插法建立的線性鏈表。

#include <iostream>
#include <string.h>
#include <stdio.h>

using namespace std;

struct node
{
int val;
node *next;
};

node *head,*p,*q;

void Init()
{
head = new node();
q = head;
}

void Insert(int x) //尾插法
{
p = new node();
p->val = x;
q->next = p;
q = p;
q->next = NULL;
}

int Find(node *t,int k) //查找第k個元素的值
{
int cnt = 1;
node *p = t;
p = t->next;
while(p != NULL && (cnt < k))
{
p = p->next;
cnt++;
}
return p->val;
}

bool Search(node *t,int x) //查找鍵值為x的元素是否在鏈表中
{
node *p = t;
while(p != NULL)
{
if(p->val == x) return true;
p = p->next;
}
return false;
}

void Delete(node *t,int x)
{
node *q = t,*p;
p = q->next;
while(p != NULL && (p->val != x))
{
q = p;
p = p->next;
}
q->next = p->next;
delete p;
}

void Print()
{
node *t = head;
t = t->next;
while(t != NULL)
{
printf("%d ",t->val);
t = t->next;
}
cout<<endl;
}

int main()
{
int n,x;
while(cin>>n)
{
Init();
while(n--)
{
cin>>x;
Insert(x);
}
Print();
}
return 0;
}


 

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com