
链表(linked List)——顺序表的一种 逻辑上是连续的但物理上再内存中并不是连续的
在堆中动态分配空间
c --malloc申请空间,free回收
c++--new申请空间,Dalete回收(c++好用)
#include<iostream>using namespace std;struct node{ int data; node * next;};int n;//n=new int ;node* creat(int *arr)//带头节点的链表 { node* p,*head,*pre; head=new node; head->next=NulL; pre=head; for(int i=0;i<n;i++) { p=new node; p->data =arr[i]; p->next=NulL; pre->next=p; pre=p; } return head;}//在以head为头结点的链表上计数元素x的个数int search(node* head,int x){ int count=0; node *p=head->next; while(p!=NulL){ if(p->data==x) count++; p=p->next; } return count;}//将x插入以head为头结点的链表的第pos个位置上voID insert(node* head,int pos,int x){ node* p=head; for(int i=0;i<pos-1;i++){ p=p->next; } node* q=new node; q->data=x; q->next=p->next; p->next=q;}//删除以head为头结点的链表中所有数据域为x的结点voID del(node* head,int x){ node* p=head->next; node* pre=head; while(p!=NulL){ if(p->data==x){ pre->next=p->next; delete(p); p=pre->next; }else{ pre=p; p=p->next; } }}int main(){ cin>>n; int *arr=new int[n]; for(int i=0;i<n;i++) cin>>arr[i]; node* r=creat(arr); while(r!=NulL) { cout<<r->data<<" "; r=r->next; } return 0;}总结
以上是内存溢出为你收集整理的数据结构--链表全部内容,希望文章能够帮你解决数据结构--链表所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)