1樓:聆聽海的聲音
//建立一個單連結串列
#include
#include
typedef struct lnode * pointer;
struct lnode
;typedef pointer lklist;
void create(lklist &l)r->next=null;
}void output(lklist l) //輸出單連結串列的元素}
2樓:管我壞不壞
#include
using namespace std;
#include
typedef struct lnodelnode;
r->next=null;
}void output(lnode *l)//輸出單連結串列中內容}int main()
;lnode *l;//定義一個頭指標
createlisth(l,a,10);
output(l);
createlistt(l,a,10);
output(l);
return 0;
}用了頭插 尾插進行簡單輸入輸出
3樓:du瓶邪
內容包括連結串列的建立,增加、刪除節點,連結串列的逆序、排序和銷燬等。
#include
#include
typedef struct node
node;
//連結串列的操作,以有頭節點為例,無頭節點類似node* head = null;
//建立連結串列,頭結點data=0,pnext=null;
bool createnodelist()else
}//增加節點
bool addnode(node* node)node* p = head->pnext;
node* q = head;
while(null != p)
q->pnext = node;
node->pnext = null;
return true;
} //刪除節點
bool deletenode(int index)node* p = head->pnext;
int length = 0;
while(null != p)
if(length < index)
else
node* t = p->pnext;
q->pnext = t;
free(p);
return true;
} }
//逆序
void reversenodelist()//如果連結串列長度為1
if(head->pnext == null)node* p = head->pnext;
node* q = p->pnext;
node* t = null;
while(null != q)
head->pnext->pnext = null;
head->pnext = p;
} //排序(降序)
void sort()
if(phead->pnext == null)node* pi = phead->pnext;
node* pj = pi->pnext;
for(;pi != null;pi=pi->pnext)}
} }
//銷燬
void destroynodelist()if(null == head->pnext)node* p = head->pnext;
while(null != p)
free(head);
head = null;
} void main()
4樓:睿爾科技嵌入式
我有一個完整的**給你。如附件
具體**如下:
//------------------------------( 連結串列 )-------------------------------------
#include
#include
#define success 1
#define flase 0
typedef struct node
node,*linklist;
//初始化連結串列
//返回型別為指向結構體的指標
linklist init_linklist(linklist phead)
//返回連結串列長度
int get_length(linklist phead)
return ilength;
}//插入結點
//成功插入返回連結串列頭指標,不成功提示錯誤,返回頭指標
//phead:結點頭指標
//ilocate:位置
//idata:資料
linklist inset_linklist(linklist phead , int ilocate , int idata)
else if(ilocate<=(get_length(phead)+1))
else
}//根據資料刪除結點
//idata為要刪除的結點
linklist delete_data_linklist(linklist phead,int idata)
if(phead->idata==idata)
pflag1=pflag1->pnext;
while(pflag1->pnext!=null)
else
}printf("no such data\n");
return phead;
}//根據位置刪除結點
//ilocate為需要刪除的位置
linklist delete_locate_linklist(linklist phead,int ilocate)
else if(ilocate==1)
else if (ilocate <= get_length(phead))
pflag->pnext = pflag->pnext->pnext;
// free(pflag->pnext);
printf("del success");
return phead;
}else
}//輸入資料函式
int input_idata(void)
//輸入位置函式
int input_ilocate(void)
}//列印所有結點
int printf_node(linklist phead)
return success; //成功返回success
}void run_linklist(void)
printf("\n\n");
getchar();}}
int main(void)
在資料結構中建立一個單連結串列,要求單連結串列的元素按升序排列,輸出單連結串列,然後插入元素x保持單連結串列的升... 30
5樓:匿名使用者
給你函式自己也得練習寫啊!
//連結串列指標實現
#include
#include//需要malloc.h
struct node
;struct node head;
void init()//初始化
struct node *ins(struct node *p,int i) //在p位置後插入i
void del(struct node *p) //刪除p位置(p!=head)
排序部分可以使用冒泡或者快排,選排
資料結構(c語言)用單連結串列儲存一元多項式,並實現兩個多項式的相加運算
資料結構中,單連結串列p=l與p=l->next有什麼區別?p->next=s與p->next=s-> 10
6樓:熱情的
l在資料結構中一般是作為連結串列頭節點的指標,p=l,將p指標也指向頭節點。
l->next有兩層含義,可以表示l的後繼節點指標,又可表示l的指標域,(補充:連結串列每個節點分為資料域和指標域,(單連結串列的指標域只有後繼指標域,雙連結串列的指標域分為前趨指標域和後繼指標域))。第一,當它在等號右邊時(即x = l->next形式)一般是指將x指標指向頭節點l的後一個節點也就是連結串列的第一個資料節點;第二,當它在等號左邊的時候(即l->next = x),表示將x的值當做地址,寫入到l的後繼指標域l->next當中,相當於頭節點l的後面連結一個資料節點。
基礎概念理解後,對於p->next=s與p->next=s->next就好理解了,p->next=s:將指標變數s的值寫入p的後繼指標域,相當於p資料節點後又連結一個指標s指向資料節點,p->next=s->next:將s節點後接的節點的地址寫入到p節點的後繼指標域,相當於p節點插入到原先s節點與s的後接節點中間。
中間邏輯建議畫圖理一遍,理順了以後再見到就能很快看明白的。
7樓:匿名使用者
p和l都是資料結構物件嗎 p=l是把資料結構l的每個變數的值賦給p 另個是把l裡的next變數的值賦給p 第二種好像錯的吧。第二個第一種是把s的首地址賦給p的next變數 第二種是把s的next值賦給p的next
8樓:雨後小故事
l->next是l後的下一個資料
建立帶頭結點的單連結串列(2 3 7 9 12資料結構C
l是一個不帶頭結點的單連結串列的頭指標。一開始判斷該指標以及該指標指向的下一個結點是否為空,如果不為空,代表該連結串列存在,然後將指標l的指向給q,並且l指向l的下一個結點 l l next 再指向下一個結點之後,再將l的指向給p。急求 資料結構試驗用c 建立一個頭結點為head的單連結串列 要求遍...
在資料結構中,從邏輯上可以把資料結構分成
1 c2 a 3 a4 a 5 d6 a 8 b9 b 10 a caaad a bca 1 資料結構是一門研究非數值計算的程式設計問題中計算機的a以及它們之間的 b 和運算等的學科。e68a84e8a2ad62616964757a686964616f31333431376535 a.資料元素 b....
資料結構單連結串列頭插法和尾插法是什麼意思
頭插法是新增 節點總是插在頭部,以帶頭結點連結串列為例,連結串列頭指標是head,新增節點p 那麼專p next head next head next p 如果是不帶頭結點的連結串列屬那麼對應是 p next head head p 而尾插法是將新增節點插在連結串列尾部,for t head t ...