线性链表的基本操作
線性鏈表常見的操作:插入,刪除,查找等等。以下采用尾插法建立的線性鏈表。
#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; }
?
?
總結