程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 線性表的鏈式存儲

線性表的鏈式存儲

編輯:C++入門知識

線性表的鏈式存儲


#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define N 500010
#define INF 10000000
#define LL long long
#define eps 10E-9
#define mem(a) memset(a,0,sizeof(a))
#define w(a) while(a)
#define s(a) scanf(%d,&a)
#define ss(a,b) scanf(%d%d,&a,&b)
#define sss(a,b,c) scanf(%lld%lld%lld,&a,&b,&c)
#define MAXN 9999
#define MAXSIZE 10
#define DLEN 4
#define MAXN 9999
#define MAXSIZE 10
#define DLEN 4
using namespace std;
typedef struct node
{
int data;
struct node *next;
} Node;
void create(Node **p)
{
*p=NULL;
}
int my_insert(Node **p, int x)
{
Node *p1;
p1 = (Node *) malloc(sizeof (Node));
if (p1 == NULL)
return false;
Node *p2=*p;
while(p2 != NULL)
{
if (p2->data == x)
break;
p2= p2->next;
}
p1->data = x;
p1->next = *p;
*p = p1;
return true;
}
int my_delete(Node **head, int x)
{
Node *p=*head, *q;
if (p->data == x)//考慮頭結點就是要刪除的元素
{
*head = (*head)->next;
free(p);
return true;
}
else
{
q = p; p = p->next; //q指向前一個節點,p指向下一個節點
while(p != NULL)
{
if (p->data == x)
{
q->next = p->next;
free(p);
return true;
}
q = p; p = p->next;
}
}
return false;
}
int my_find(Node **head, int x)
{
Node *p=*head;
while(p != NULL)
{
if (p->data == x)
break;
p = p->next;
}
return p->data;
}
void my_clear(Node **head)
{
Node *p=*head,*q;
while (p != NULL)
{
q = p;
p = p->next;
free(q);
}
}
void my_showalldata(Node **head)
{
Node *p=*head,*q;
while (p != NULL)
{
cout<data<< ;
p = p->next;
}
cout< }
int main()
{
int x, n;
Node *head;
create(&head);
cout< cin>>n;
cout<>x;
my_insert(&head,x);
}
cout< my_showalldata(&head);
cout< cin>>x;
my_delete(&head,x);
my_showalldata(&head);
cout< cin>>x;
cout< // my_clear(&head);// formating
free(head);
return 0;
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved