參考:
一、線性表:順序表、單鏈表、迴圈鍊錶、雙鏈表
順序表:
1.表的初始化
void initlist(seqlist *l)
2.求表長
int listlength(seqlist *l)
3.取表中第i個結點
datatype getnode(l,i)
4.查詢值為x的結點
5. 插入
具體演算法描述
void insertlist(seqlist *l,datatype x,int i)
6.刪除
具體演算法描述
void deletelist(seqlist *l,int i)
單鏈表#include
#include
#include
#include
using namespace std;
typedef struct student
intdata;
structstudent *next;
}node;
node *creat()
node*head,*p,*s;
intx,cycle = 1;
head= (node*)malloc(sizeof(node));
p= head;
while(cycle)
printf("\npleaseinput the data:");
scanf("%d",&x);
if(x!=0)
s= (node*)malloc(sizeof(node));
s->data= x;
printf("\n %d",s->data);
p->next= s;
p= s;
elsecycle = 0;
head= head->next;
p->next= null;
printf("\n yyy %d",head->data);
return(head);
int length(node *head)
intn=0;
node*p;
p= head;
while(p!=null)
p=p->next;
n++;
return(n);
void print(node *head)
node*p;int n;
n= length(head);
printf("\nnow,these%d records are:\n",n);
p= head;
if(head!=null)
while(p!=null)
printf("\nuuu %d ",p->data);
p= p->next;
node *del(node *head,int num)
node*p1,*p2;
p1=head;
while(num!=p1->data&&p1->next!=null)
p2=p1;p1=p1->next;
if(num==p1->data)
if(p1==head)
head= p1->next;
free(p1);
else
p2->next= p1->next;
else
printf("\n%could not been found",num);
return(head);
node *insert(node *head,int num)
node*p0,*p1,*p2;
p1= head;
p0= (node *)malloc(sizeof(node));
p0->data= num;
while(p0->data>p1->data&&p1->next!=null)
p2= p1;
p1= p1->next;
if(p0->data<=p1->data)
if(head== p1)
p0->next= p1;
head= p0;
else
p2->next= p0;
p0->next= p1;
else
p1->next= p0;
p0->next= null;
return(head);
int main()
node*head,stud;
intn,del_num,insert_num;
head= creat();
print(head);
cout<<"\nint: ";
cin>>del_num;
head= del(head,del_num);
print(head);
cout<<"\npleaseinput the insert data: ";
cin>>insert_num;
head= insert(head,insert_num);
print(head);
return0;
資料結構(線性表)
1.試寫一演算法,在無頭結點的動態單鏈表上實現線性表操作insert l,i,b 並和在帶頭結點的動態單鏈表上實現相同操作的演算法進行比較。status insert linklist l,int i,int b 在無頭結點鍊錶l的第 i個元素之前插入元素 belse insert 2.已知線性表中...
資料結構 線性表
線性表是最基礎的一種資料結構,這樣的資料物件包含的資料元素具有一對一的前驅後繼關係。按其邏輯儲存方式的不同可分為兩類線性表 順序表和鏈式表。其中鏈式表又可分為線性鍊錶 迴圈鍊錶和雙向鍊錶。下面分別介紹下這幾種線性表的資料結構 1.順序表 typedef struct sqlist 插入演算法 i到n...
資料結構 線性表
include using namespace std define listsize 100 表空間的大小可根據實際需要而定,這裡假設為100 typedef int datatype datatype的型別可根據實際情況而定,這裡假設為int typedef struct seqlist 初始化...